Tôi đang sử dụng hàm PHP getLoginUrl() của PHP hoạt động hoàn hảo để đăng nhập người dùng. Khi người dùng được chuyển hướng trở lại trang của tôi, URL có thể có hai dạng, xem trong phần phụ của liên kết sau đây 3: http://developers.facebook.com/docs/authentication/server-side/Facebook PHP SDK - getLoginUrl() - giá trị trạng thái
Một phần của URL trả về là một trạng thái = giá trị. Giá trị này là nghĩa vụ phải được sử dụng để ngăn chặn trang web Hội Chữ thập Yêu cầu giả mạo: http://developers.facebook.com/docs/reference/dialogs/oauth/
Mặc dù, sử dụng phương pháp getLoginUrl() Tôi không bao giờ có thể thiết lập một giá trị nhà nước vì nó không phải là một trong những thông số: http://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/
Vậy làm thế nào thế nào tôi có thể sử dụng giá trị nhà nước để đăng nhập một người dùng vào facebook và ngăn chặn CSRF?
Tôi đã tự hỏi này quá. Một cái gì đó tôi đang làm bây giờ đi một cái gì đó như thế này: (Tôi chắc chắn theres một cách tốt hơn chính xác hơn) '$ loginUrl = $ facebook-> getLoginUrl (mảng ('scope' => 'email', 'redirect_uri' => FACEBOOK_REDIRECT_URL)); $ _SESSION ['state'] = $ _SESSION ['fb _'. FACEBOOK_APP_ID .'_ state ']; '. Sau đó, khi xác thực sau khi chuyển hướng quay lại trang web của bạn: 'if ($ _ SESSION ['state'] == $ _REQUEST ['state']) {// not CSRF}' – uguMark