2017-07-11 13 views
2

誰でもここでAuth0のGoogleからのソーシャルログインを実装しましたか? Googleで検証した後にトークン(アクセスとID)が返される問題があります。[承認済み] API呼び出しのAuth0トークンを使用したGoogleソーシャルログイン

はここに私のコードです:

var waGoogle = new auth0.WebAuth({ 
    domain: 'testApplication.auth0.com', 
    clientID: '************', 
    redirectUri: 'http://localhost:8080/' 
}) 

waGoogle.authorize({ 
    connection: 'google-oauth2', 
    responseType: 'id_token token' 
    }, function(err, authResult){ 
    if(err){ 
     console.log('Google Login Error') 
     console.log(err) 
    } 
}); 

Googleの画面が現れ、私がログインし、私は戻って私のアプリケーションにリダイレクトされています。アプリケーションから、URLを解析して、アクセストークンとIDトークンを取得できるようにします。私が午前

let getParameterByName = (name) => { 
    var match = RegExp('[#&]' + name + '=([^&]*)').exec(window.location.hash); 
    return match && decodeURIComponent(match[1].replace(/\+/g, ' ')); 
} 

var access_token = getParameterByName('access_token') 
var id_token = getParameterByName('id_token') 

問題は、トークンのどれもが、私は[承認]属性で装飾されている(asp.netのWeb API)私のAPIを呼び出すことができないということです。それは返します

401(無許可)

私は私のAPIが

方法ユーザー名、パスワード、認証

ノーマルを使用して、動作していることを知っています私はアクセストークンも取得しますが、私のAPIコールはちょうど引き抜かれています。

Googleからアクセス権とid_tokenを取得した後に行う必要がある手順はありますか?自分のWeb APIを呼び出すために適切なアクセストークンを取得するためにAuth0を追加呼び出しする必要がありますか?

ありがとうございました。

+0

[ここ](https://auth0.com/docs/goog-clientid)に説明されているように、自分の鍵でGoogleのソーシャル接続を設定しましたか? –

+0

はい、私はしました。私はトークン(アクセスとID)を取得することができますが、私が直面している問題は、それらのトークンがasp.net Web APIの[Authorized]で装飾したAPIに対して許可されていないことです。 – aThink

+0

アクセストークンはJWTトークン(3つのセクションを持つ長い文字列、ドットで区切られています)を取得していますか?もしそうなら、あなたはhttps://jwt.ioでそれをデバッグし、データベース接続を使用するときに発行されたものとどのように違うのかを見ることができます。 –

答えて

1

あなたが探しているトークンは、IdP(アイデンティティプロバイダ)トークンと呼ばれます。これは、ログイン後に発行されたものとは異なります。Auth0サイトには、トークンを取得するプロセスが表示されます。

Here is the overview of IdP tokens

Here is a step-by-step guide to calling the Identity Provider

TL; DR:

あなたのサーバーからAuth0管理APIを呼び出す必要がIdPのトークンにアクセスします。そのためには、サーバーに管理トークンが必要です。その後、そのトークンを使用してエンドポイント/api/v2/users/[USER_ID]にアクセスします。 Auth0から返されたオブジェクトで、Google IDを探し、そのトークンを抽出します。

可能であれば、サーバー上にトークンを置いておくことをお勧めします。これらのパワートークンをクライアントから遠ざけておくことができれば、ユーザーは満足できます。

関連する問題