针对Auth0的oidc-client-js的signoutRedirect不返回结束会话端点

时间:2018-06-13 19:04:57

标签: auth0 oidc-client-js

我已成功使用Brock Allen的oidc-client-js库来验证我的SPA应用程序,Auth0充当我的身份提供商。但是,当我尝试使用该库向用户签出mgr.signoutRedirect({state: "my test"})时,我收到错误:no end session endpoint

enter image description here

查看metadata endpoint表明存在撤销端点。

我已经像这样配置了oidc-client-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);

我缺少什么想法?

2 个答案:

答案 0 :(得分:5)

您可以通过向用户管理器设置添加元数据部分来为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也可以是您的SPA路线地址,例如${window.location.origin}/logout,但随后广告会话也不会结束。

您还可以设置metadataUrl而不是元数据。 ' https://login.microsoftonline.com/YOUR_TENANT_NAME.onmicrosoft.com/.well-known/openid-configuration',

答案 1 :(得分:2)

注销重定向显式查看idp configuration中的Json属性“end_session_endpoint”,我没有在你的idp配置中看到那个端点,我猜,这不是你可以用oidc-client覆盖的东西.js包。

检查它们如何从元数据中检索端点URL。 https://github.com/IdentityModel/oidc-client-js/blob/dev/src/OidcClient.js#L124