Xamarin和Auth0-获取刷新令牌
我遵循auth0提供的指南,一直在进行身份验证,但我已经厌倦了每次打开应用程序并希望开始存储和利用刷新令牌时都必须登录。然而,我似乎无法获得刷新令牌,它总是空的 在我的后勤活动中,我有以下几点Xamarin和Auth0-获取刷新令牌,xamarin,oauth,auth0,Xamarin,Oauth,Auth0,我遵循auth0提供的指南,一直在进行身份验证,但我已经厌倦了每次打开应用程序并希望开始存储和利用刷新令牌时都必须登录。然而,我似乎无法获得刷新令牌,它总是空的 在我的后勤活动中,我有以下几点 _client = new Auth0Client(new Auth0ClientOptions { Domain = Resources.GetString(Resource.String.auth0_domain), ClientId =
_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();
}
}
如果包含范围,则返回一个错误,响应不包含标识令牌。如果我不包括,我就不会得到刷新令牌。对于我来说,窍门是添加作用域行,如下所示 原代码:
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”出现。您使用的是什么OAuth库?这可能有助于遵循您的流程。哦,我已经为此奋斗了很久了!这正好解决了问题,谢谢!:)