2016-04-24 8 views
0

セットアップに何が問題なのですか?Google Oauth2連絡先APIが返す無効なトークン:1時間後にステートレストークンが有効期限切れになる

私はdjango-allauthをソーシャルサインアップに使用しています。最近、私はその連絡先に連絡先を追加しました。物事は正常に動作しています。連絡先を管理する権限が要求され、APIを通じてユーザーの連絡先の詳細を取得できるようになりました。

しかし、一度私はユーザーの連絡先を取得する要求をします(私はその時点でリフレッシュトークンまたはaccssトークンを保存していません)。同じトークンでリクエストを再度行うと、トークンが無効です:ステートレストークンは期限切れです "。

私はまだウェブサイトにログインすることができ、トークンは変更されません。しかし、ログアウトしてもう一度ログインするとトークンが変わり、そのトークンを使って1時間も連絡先を取得できます。

問題点を教えてください。私は何が欠けていますか?

答えて

0

ウェブサイトにログインしているときは、おそらくCookieを使用しています。したがって、基本的に同じセッションを使用している可能性があり、実際にはapiは呼び出されません。

シークレットモードまたは別のブラウザでログインしているときは、そのCookieを使用できないため、今回はapiが呼び出されます。このため、トークンが変更されています。

たとえば、ユーザー数がGoogleにサインアップした後で、アプリの範囲を変更した場合、ユーザーがCookieを有効にしていて、期限切れになっていない場合、最近、スコープに追加した権限は求められません。しかし、彼がログアウトして再度ログインすると、追加の許可が求められ、トークンも変更されます。

あなたがすべきことは、django-allauthのコードを調べ、トークンの使い方をクリアすることです。リフレッシュトークンを取得するには、構成でオフラインアクセスが有効になっている必要があります。

関連する問題