2017-07-21 4 views
1

を取得トークン。しかし、私はそのは常にnull、リフレッシュトークンを取得するように見えることはできません。私はXamarinとAuth0 - 私はauth0によって設けられたガイドに従っていましたし、うまく認証されていますが、私は私がアプリを開いて、リフレッシュの利点を保持し、服用開始したかった毎回ログインを持つのに疲れて取得していますリフレッシュトークンに

_client = new Auth0Client(new Auth0ClientOptions 
     { 
      Domain = Resources.GetString(Resource.String.auth0_domain), 
      ClientId = Resources.GetString(Resource.String.auth0_client_id), 
      //Scope = "offline_access", 
      Activity = this 
     }); 

ので

_authorizeState = await _client.PrepareLoginAsync(new { audience = "myaudience.blahblahblah"}); 


protected override async void OnNewIntent(Intent intent) 
    { 
     base.OnNewIntent(intent); 

     var loginResult = await _client.ProcessResponseAsync(intent.DataString, _authorizeState); 

     var sb = new StringBuilder(); 
     if (loginResult.IsError) 
     { 
      sb.AppendLine($"An error occurred during login: {loginResult.Error}"); 
     } 
     else 
     { 
      var mainActivity = new Intent(this, typeof(MainActivity)); 
      mainActivity.PutExtra("token", loginResult.AccessToken); 
      StartActivity(mainActivity); 
      Finish(); 
     } 
    } 

私はスコープが含まれている場合、私は応答が含まれていないこと、エラーを取り戻すようにログインの取り扱いを以下している私のLoginActivityで

アイデンティティトークン私が含まれていない場合、私はちょうどリフレッシュトークンを取得しないでください。私にとって

+0

あなたは何のOAuth-ライブラリを使用していますか?これはあなたのプロセスに従うのに役立つかもしれません。 –

答えて

0

、トリックは、以下に示すように、スコープの行を追加しました。

元のコード:

client = new Auth0Client(new Auth0ClientOptions 
{ 
    Domain = Resources.GetString(Resource.String.auth0_domain), 
    ClientId = Resources.GetString(Resource.String.auth0_client_id), 
    Activity = this 
}); 
変更

と1作業:

client = new Auth0Client(new Auth0ClientOptions 
{ 
    Domain = Resources.GetString(Resource.String.auth0_domain), 
    ClientId = Resources.GetString(Resource.String.auth0_client_id), 
    Activity = this, 
    Scope = "openid offline_access" 
}); 

は、私はこれでだけ試してみました: "OpenIDの" まで、

Scope = "offline_access" 

しかし、エラーを受信しましたそれの前に

関連する問題