我在google和Stack Overflow中搜索过没有合适的答案。
我在客户端应用程序中使用ReactJs + Redux,.Net WebAPI用于联系数据库和其他逻辑实现,最后我使用IdentityServer3来验证用户。
点击退出后,我会触发以下网址:https://localhost:123/core/connect/endsession
new Client
{
Enabled = true,
ClientName = "Super Star Application",
ClientId = "SS",
Flow = Flows.Implicit,
RequireConsent = false,
RequireSignOutPrompt =false,
RedirectUris = new List<string>
{
"http://localhost:111/callback"
},
PostLogoutRedirectUris = new List<string> {"https://www.google.com/"},
AllowedCorsOrigins = new List<string>
{
"http://localhost:111/"
},
AllowAccessToAllScopes=true
}
在Startup.cs中我有以下代码
app.Map("/core", core =>
{
var idSvrFactory = Factory.Configure();
idSvrFactory.ConfigureUserService("AspId");
var options = new IdentityServerOptions
{
SiteName = "Super Star",
SigningCertificate = Certificate.Get(),
Factory = idSvrFactory,
ProtocolLogoutUrls = new System.Collections.Generic.List<string>()
{
"https://www.google.co.in"
},
AuthenticationOptions = new AuthenticationOptions
{
EnablePostSignOutAutoRedirect=true,
EnableSignOutPrompt = false,
PostSignOutAutoRedirectDelay = 1,
EnableLoginHint = true,
RememberLastUsername = true,
EnableAutoCallbackForFederatedSignout = true,
RequireSignOutPrompt = false
}
};
core.UseIdentityServer(options);
});
我不知道如何重定向到http://www.google.com而不是以下屏幕
请帮助我...
答案 0 :(得分:1)
您需要调用endsession端点,传递id令牌并将logout重定向url作为参数发布。
/connect/endsession?id_token_hint={id token}&post_logout_redirect_uri=http://www.google.com
其中{id token}是在调用/ connect / authorize端点时从身份服务器返回的id令牌。
请参阅此处的文档https://identityserver.github.io/Documentation/docsv2/endpoints/endSession.html
请注意,您必须返回一个id令牌才能使重定向工作,否则endsession请求的验证将失败,并且不会发生重定向。