如何解决令牌刷新存储区以允许refresh_token
我已经配置了IS4
,并且除了refresh_token
正常运行外,其他所有设备都可以正常运行,除了PersistedGrantStore
。
自从读取日志后,我已经实现了 2020/09/01 17:57:25.589|TRACE|Processing token request. |IdentityServer4.Endpoints.TokenEndpoint|
2020/09/01 17:57:25.616|DEBUG|Start token request. |IdentityServer4.Endpoints.TokenEndpoint|
2020/09/01 17:57:25.624|DEBUG|Start client validation |IdentityServer4.Validation.ClientSecretValidator|
2020/09/01 17:57:25.638|DEBUG|Start parsing Basic Authentication secret |IdentityServer4.Validation.BasicAuthenticationSecretParser|
2020/09/01 17:57:25.638|DEBUG|Start parsing for secret in post body |IdentityServer4.Validation.PostBodySecretParser|
2020/09/01 17:57:25.701|DEBUG|client id without secret found |IdentityServer4.Validation.PostBodySecretParser|
2020/09/01 17:57:25.701|DEBUG|Parser found secret: PostBodySecretParser |IdentityServer4.Validation.SecretParser|type=PostBodySecretParser
2020/09/01 17:57:25.720|DEBUG|Secret id found: autosmoraga_transportes_mobile_app |IdentityServer4.Validation.SecretParser|id=autosmoraga_transportes_mobile_app
2020/09/01 17:57:25.734|TRACE|Calling into client configuration validator: IdentityServer4.Validation.DefaultClientConfigurationValidator |IdentityServer4.Stores.ValidatingClientStore|validatorType=IdentityServer4.Validation.DefaultClientConfigurationValidator
2020/09/01 17:57:25.749|DEBUG|client configuration validation for client autosmoraga_transportes_mobile_app succeeded. |IdentityServer4.Stores.ValidatingClientStore|clientId=autosmoraga_transportes_mobile_app
2020/09/01 17:57:25.749|DEBUG|Public Client - skipping secret validation success |IdentityServer4.Validation.ClientSecretValidator|
2020/09/01 17:57:25.766|DEBUG|Client validation success |IdentityServer4.Validation.ClientSecretValidator|
2020/09/01 17:57:25.785|TRACE|Calling into token request validator: IdentityServer4.Validation.TokenRequestValidator |IdentityServer4.Endpoints.TokenEndpoint|type=IdentityServer4.Validation.TokenRequestValidator
2020/09/01 17:57:25.799|DEBUG|Start token request validation |IdentityServer4.Validation.TokenRequestValidator|
2020/09/01 17:57:25.825|DEBUG|Start validation of refresh token request |IdentityServer4.Validation.TokenRequestValidator|
2020/09/01 17:57:25.856|TRACE|Start refresh token validation |IdentityServer4.Validation.TokenValidator|
2020/09/01 17:57:25.928|DEBUG|refresh_token grant with value: lSWqDibFzKevkEI6KMNQyGimeK7MS7Yrjenk34XEDNQ
not found in store. |IdentityServer4.Stores.DefaultRefreshTokenStore|grantType=refresh_token,key=lSWqDibFzKevkEI6KMNQyGimeK7MS7Yrjenk34XEDNQ
2020/09/01 17:57:25.939|WARN|Invalid refresh token |IdentityServer4.Validation.TokenValidator|
2020/09/01 17:57:25.961|WARN|Refresh token validation failed. aborting,{"ClientId":"XXX","ClientName":"XXX","GrantType":"refresh_token","Raw":{"client_id":"XXX","redirect_uri\n":"http:\/\/localhost:8100\/auth-callback","grant_type":"refresh_token","refresh_token":"***REDACTED***"}} |IdentityServer4.Validation.TokenRequestValidator|details={
"ClientId": "XXXX","ClientName": "XXX","GrantType": "refresh_token","Raw": {
"client_id": "XXXX","redirect_uri\n": "http://localhost:8100/auth-callback","grant_type": "refresh_token","refresh_token": "***REDACTED***"
}
}
来存储令牌:
.AddPersistedGrantStore<PersistedGrantStore>()
我已经注册了DefaultRefreshTokenStore
方法,但是我仍然可以在日志中看到正在调用refresh_token
,但是我在数据库中看到已经存储了new Client
{
ClientId = "XXXX",ClientName = "XXX",AllowedGrantTypes = GrantTypes.Code,RequirePkce = true,RequireClientSecret = false,AllowedScopes = new List<string> { "openid","profile","myapi" },RedirectUris = new List<string> {
$"{mobileBaseUrl}/auth-callback",$"{mobileAppBaseUrl}auth-callback",$"{mobileAppOrigin}/auth-callback",},PostLogoutRedirectUris = new List<string> {
$"{mobileBaseUrl}/end-session",$"{mobileAppBaseUrl}end-session",$"{mobileAppOrigin}/end-session",AllowedCorsOrigins = new List<string> {
mobileBaseUrl,mobileAppOrigin
},AllowOfflineAccess = true,AllowAccessTokensViaBrowser = true,RequireConsent = false,AlwaysSendClientClaims = true,AlwaysIncludeUserClaimsInIdToken = true,}
类型的记录。我不确定是否遗漏了一些东西。除刷新令牌部分外,其他所有方法都工作正常。设置客户端配置并启用在线访问:
go version
所以我不确定要检查什么。作为参考,我在此处对问题进行了详细说明:https://github.com/wi3land/ionic-appauth/issues/33
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。