【问题标题】:Xamarin and Auth0 - getting refresh tokensXamarin 和 Auth0 - 获取刷新令牌
【发布时间】:2017-12-28 02:31:20
【问题描述】:

我按照 auth0 提供的指南进行了身份验证,但我已经厌倦了每次打开应用程序时都必须登录并想要开始存储和利用刷新令牌。但是我似乎无法获得刷新令牌,它始终为空。

在我的 LoginActivity 中,我有以下内容

_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();
        }
    }

如果我包含范围,那么我会收到一个错误,即响应不包含身份令牌。如果我不包括在内,我就不会获得刷新令牌。

【问题讨论】:

  • 您使用的是什么 OAuth-Library?这可能有助于遵循您的流程。

标签: xamarin oauth auth0


【解决方案1】:

对我来说,诀窍是添加 Scope 行,如下所示。

原代码:

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

改变和工作的一个:

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"
});

我只试过这个:

Scope = "offline_access"

但是收到一个错误,直到前面的“openid”。

【讨论】:

  • 哦,我已经为此苦苦挣扎多年了!这完全解决了它,谢谢! :)
猜你喜欢
  • 2017-03-10
  • 2019-02-25
  • 2021-06-12
  • 2020-01-14
  • 2017-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-22
相关资源
最近更新 更多