2

インストール済みアプリケーションに OAuth 2 フローを使用しています。アプリケーションは、認証のためにユーザーをリダイレクトします。ユーザーを認証した後、アプリケーションが自分のアカウントにアクセスすることを承認します。ブラウザは次のページをロードせず、デバッグ コンソールに Javascript タイプのエラーが表示されます。

問題を再現する手順:

  1. redirect_uri を範囲外 (urn:ietf:wg:oauth:2.0:oob) に設定して、ユーザーを https://accounts.google.com/o/oauth2/auth に誘導します。
  2. 認証は正常に機能します
  3. 認証ページで Accept ボタンをクリックすると、スクリプトは TypeError をスローします。

期待される出力: ブラウザは、タイトルに認証コードを含むページをロードする必要があります。

実際の結果: [承認] ボタンと [キャンセル] ボタンの両方 が無効になり、クリックしても効果がありません。スクリプトは、ブラウザーのオブジェクトでプロパティが使用可能かどうかを確認する必要があります。sessionStoragewindow

デバッグ コンソールからの出力は次のとおりです。

TypeError: Result of expression 'window.sessionStorage' [undefined] is not an object.
 at https://apis.google.com/_/scs/abc-static/_/js/k=gapi.gapi.en.a0irxetnvx4.O/m=googleapis_client,plusone/exm=appcirclepicker/rt=j/sv=1/d=1/ed=1/am=EA/rs=AItRSTMM3Tduq30stOAPMPXAx0A6ctSSsg/cb=gapi.loaded_1 : 13
 at https://apis.google.com/_/scs/abc-static/_/js/k=gapi.gapi.en.a0irxetnvx4.O/m=googleapis_client,plusone/exm=appcirclepicker/rt=j/sv=1/d=1/ed=1/am=EA/rs=AItRSTMM3Tduq30stOAPMPXAx0A6ctSSsg/cb=gapi.loaded_1 : 18
 at https://ssl.gstatic.com/gb/js/smm_f3709b68f5d2f2cb75de9df3f7819c89.js : 151
 at https://ssl.gstatic.com/gb/js/smm_f3709b68f5d2f2cb75de9df3f7819c89.js : 154
 at https://ssl.gstatic.com/gb/js/smm_f3709b68f5d2f2cb75de9df3f7819c89.js : 151
 at https://ssl.gstatic.com/gb/js/smm_f3709b68f5d2f2cb75de9df3f7819c89.js : 153
 at https://ssl.gstatic.com/gb/js/smm_f3709b68f5d2f2cb75de9df3f7819c89.js : 153
 at https://ssl.gstatic.com/gb/js/smm_f3709b68f5d2f2cb75de9df3f7819c89.js : 153
 at https://ssl.gstatic.com/gb/js/smm_f3709b68f5d2f2cb75de9df3f7819c89.js : 153
4

1 に答える 1

0

これを試して:

(1) 次の URL を削除:

<a href="{% url 'social:begin' 'google-oauth2' %}?next={{ request.path }}">Login with Google</a>

このようになる:

<a href="{% url 'social:begin' 'google-oauth2' %}">Login with Google</a>

(2) LOGIN_REDIRECT_URL を適切な値に設定します (設定ファイル内):

お気に入り:

LOGIN_REDIRECT_URL = 'login_success'     
#'login_success' is a url name, change it to your valid url name
于 2014-12-22T08:57:30.710 に答える