我已经成功地使用了布洛克艾伦的oidc-客户端js库来验证我的SPA应用程序,Auth0充当了我的身份提供者。但是,当我试图使用库将用户签出mgr.signoutRedirect({state: "my test"})时,我会收到一个错误:no end session endpoint。

查看一下元数据端点就会发现有一个撤销端点。
我已经将oidc客户端js库配置如下:
var settings = {
authority: 'https://susqsofttest.auth0.com/.well-known/openid-configuration',
client_id: 'my client id',
redirect_uri: 'http://localhost:8080/signin-oidc',
post_logout_redirect_uri: 'http://localhost:8080/logout',
response_type: 'id_token token',
scope: 'openid profile email',
revokeAccessTokenOnSignout: true,
automaticSilentRenew: true,
filterProtocolClaims: true,
loadUserInfo: true
};
var mgr = new UserManager(settings);知道我错过了什么吗?
发布于 2018-06-13 19:37:41
signout重定向显式地查看您的idp 配置中的Json属性“配置”,我没有在您的idp配置中看到那个端点,我猜,这不是可以用oidc-client.js包覆盖的东西。
看看他们是如何从元数据中检索端点url的。https://github.com/IdentityModel/oidc-client-js/blob/dev/src/OidcClient.js#L124
发布于 2018-06-19 07:23:05
通过向用户管理器设置添加元数据部分,可以为oidc客户端提供元数据。
var settings = {
authority: 'https://susqsofttest.auth0.com/.well-known/openid-configuration',
client_id: 'my client id',
redirect_uri: 'http://localhost:8080/signin-oidc',
post_logout_redirect_uri: 'http://localhost:8080/logout',
response_type: 'id_token token',
scope: 'openid profile email',
revokeAccessTokenOnSignout: true,
automaticSilentRenew: true,
filterProtocolClaims: true,
loadUserInfo: true,
metadata: {
issuer: `https://sts.windows.net/${tenant}/`,
authorization_endpoint: `https://login.microsoftonline.com/${tenant}/oauth2/authorize`,
token_endpoint: `https://login.microsoftonline.com/${tenant}/oauth2/token`,
jwks_uri: 'https://login.microsoftonline.com/common/discovery/keys',
end_session_endpoint: `https://login.microsoftonline.com/${tenant}/oauth2/logout`
}
};这个例子是在使用AzureAD的时候。end_session_endpoint也可以像${window.location.origin}/logout一样成为您的SPA路由地址,但是蔚蓝的广告会话不会结束。
您还可以设置metadataUrl而不是元数据。“NAME.onmicrosoft.com/.well-known/openid-configuration”,
https://stackoverflow.com/questions/50844515
复制相似问题