2016-07-31 5 views
1

their tutorialを使用してGoogleプラスで認証を設定しようとしています。私はclient idclient secretsignin.phpに変更して、逐語的な指示に従った。記録のために、google plus APIはGoogleデベロッパーコンソールで有効になっています。指示通りにファイルのアクセス許可を更新します(chmod +x signin.phpおよびchmod -R 555 vendor/)。しかし、自分の認証URL(私のドメインのauth_test/サブディレクトリにあり、サインインボタンをクリックすると、コンソールはgetリクエストの401 (unauthorized)を送信します)/activites.私は問題を調査し、これが可能であることを確認しました無効なトークンによって引き起こされるが、私はそれがいかに見るいけない、すべてがsingin.php.多くの助けでセットアップが...GoogleプラスOAuth PHP 401(未承認)

+0

は、あなたが 'curl'要求を行うことができますよろしいです....多分あなたはカール拡張子が有効になっていませんか?。 – Hackerman

答えて

1

をいただければ幸いですされていますので、あなたが$tockenをリフレッシュするために切断した場合、あなたのアプリの状態をリセットする必要があります。

Google APIオフィス処理APIエラードキュメント

401: Invalid Credentials 

権限ヘッダーが無効です。使用しているアクセストークンは、 の期限が切れているか無効です。

{ "error": { 
>  "errors": [ 
>  { 
>   "domain": "global", 
>   "reason": "authError", 
>   "message": "Invalid Credentials", 
>   "locationType": "header", 
>   "location": "Authorization", 
>  } 
>  ], 
>  "code": 401, 
>  "message": "Invalid Credentials" } } 

推奨処置:長寿命 リフレッシュトークンを使用してアクセストークンを更新します。これが失敗した場合はそのまたあなたのApp

の許可で説明したように、OAuthのフロー、 を介してユーザに指示明確ラインなしでsingin.phpにコメントしています。 98:

// Normally the state would be a one-time use token, however in our 
    // simple case, we want a user to be able to connect and disconnect 
    // without reloading the page. Thus, for demonstration, we don't 
    // implement this best practice. 
    //$app['session']->set('state', ''); 

は、このように、あなたのケースでは、あなたのアプリが切断され、これ$tokenが空になることを引き起こしていることが表示されます。したがって、何のラインで、このコードブロックを強制しない:91

if (empty($token)) { 
     // Ensure that this is no request forgery going on, and that the user 
     // sending us this connect request is the user that was supposed to. 
     if ($request->get('state') != ($app['session']->get('state'))) { 
      return new Response('Invalid state parameter', 401); 
     } 
関連する問題