मैं सैमीके/फेसबुक पैकेज के साथ काम कर रहा हूं और सीएसआरएफ पर फेसबुक लॉगिन के साथ एक समस्या का सामना कर रहा हूं। इससे पहले यह ठीक काम करता था, लेकिन बाद में मुझे एपीआई के सुचारु काम के लिए मेरे kernel.php में सीएसआरएफ सुरक्षा को अक्षम करना पड़ा। अब मैं इसे अद्यतन और मिडलवेयरक्रॉस-साइट अनुरोध फर्जी सत्यापन विफल रहा। आवश्यक पैरा "राज्य" गायब लैरावेल सैमिक/फेसबुक पैकेज
public function handle($request, Closure $next) {
$skip = array(
'api/v1/signup',
'api/v1/login',
'api/v1/addContacts',
'api/v1/email'
);
foreach ($skip as $key => $route) {
//skip csrf check on route
if($request->is($route)){
return parent::addCookieToResponse($request, $next($request));
}
}
return parent::handle($request, $next);
}
में नीचे लाइनों को शामिल किया है तो यह वेब और एपीआई अपेक्षा के अनुरूप काम करने के लिए अनुमति देता है, लेकिन जब से मैं CSRF अक्षम कर दिया था मैं क्रॉस-साइट अनुरोध जालसाजी सत्यापन में विफल मिलता है। जब मैं एफबी लॉगिन करता हूं तो आवश्यक पैरा "राज्य" गायब त्रुटि। मैंने फेसबुक रीडरेक्ट लॉजिइन हेल्पर में डीबग करने और पाया कि फंक्शन validateCsrf()
सहेजे गए नहीं हैं $savedState = $this->persistentDataHandler->get('state');
मुझे यकीन नहीं है कि इसे कैसे हल किया जाए, आदर्श रूप में इसे अभी काम करना चाहिए। मैंने $ राज्य और $ सहेजे गए दोनों को मुद्रित करने की कोशिश की है और मुझे $ saveState शून्य के रूप में
class FacebookController extends Controller {
public function fbConnect(LaravelFacebookSdk $fb)
{
// Obtain an access token.
try {
$token = $fb
->getRedirectLoginHelper()
->getAccessToken();
} catch (Facebook\Exceptions\FacebookSDKException $e) {
dd($e->getMessage());
}
// Access token will be null if the user denied the request
// or if someone just hit this URL outside of the OAuth flow.
if (! $token) {
// Get the redirect helper
$helper = $fb->getRedirectLoginHelper();
if (! $helper->getError()) {
abort(403, 'Unauthorized action.');
}
// User denied the request
dd(
$helper->getError(),
$helper->getErrorCode(),
$helper->getErrorReason(),
$helper->getErrorDescription()
);
}
कहाँ मैं सत्र कोड फोन .... या लॉगिन-callback.php – deemi