JavaScript クライアントと laravel バックエンドがあり、ソーシャル認証に Oauth.IO を使用しています。ここで指定された手順に従いました: http://docs.oauth.io/#authorizing-the-user-with-both-front-end-and-back-end-sdks
メソッドを呼び出して状態トークンを正常に取得しましたが、それをメソッドgenerateStateToken()
に送信すると、無効な形式エラーが発生します。このエラーの意味と、私が間違っていることを教えてください。$this->oauth->auth()
クライアント側
var selectedAuth = 'facebook';
$.post('http://localhost/auth/v1/social', {provider: selectedAuth, get_state_token: 1}, function(data){
OAuth.popup(selectedAuth)
.done(function(result) {
console.log(result);
$.post('http://localhost/auth/v1/social', {provider: selectedAuth, code: data.token, access_token: result.access_token}, function(data){
console.log(data);
}, 'json');
})
.fail(function (err) {
//handle error with err
});
}, 'json');
サーバ側
// code to get the state token in a different method
$token = $this->oauth->generateStateToken();
return response()->json(['status' => 'success', 'token' => $token]);
- をちょきちょきと切る -
// code to get access token from state token in another method
$provider = 'facebook';
$request_object = $this->oauth->auth($provider, array(
'code' => $code
));
$credentials = $request_object->getCredentials();
$code
最初のステップで受け取った正確な状態トークンがあることを確認しました。の値$credentials
は次のとおりです。
{"status":"error","data":{"code":"Invalid format"},"refreshed":false}
ここで私を助けてください。このエラーは、facebook と twitter の両方でも発生します。詳細が必要な場合はお知らせください。