vue.js 如何使用vuex-oidc实现OIDC

How to implement OIDC using vuex-oidc in vue.js

OIDC 配置对象: VUE_APP_OIDC_CONFIG={"authority": "https://auth.mainPlatform.com", "clientId": "<client-id>", "redirectUri": "http://localhost:8080/oidc-callback", "popupRedirectUri": "http://localhost:8080/oidc-popup-callback", "responseType": "id_token token", "scope": "openid email", "automaticSilentRenew": true, "automaticSilentSignin": true, "silentRedirectUri": "http://localhost:8080/silent-renew-oidc.html"}

错误: {context: "authenticateOidcSilent", error: "login_required"} App.vue?234e:38 I am listening to the oidc error event in vuex-oidc context: "authenticateOidcSilent" error: "login_required"

这是静默续订流程的绝对标准部分,可能有两个原因:

  • 当授权服务器会话 Cookie 过期时
  • 如果浏览器丢弃 AS 会话 cookie - 例如 Safari 可能会在 2020 年这样做

当您收到 login_required 错误代码时,通常的操作是重定向用户以重新登录。

疑难解答

如果每次令牌续订请求都发生这种情况,我会通过 Fiddler 等工具进行调试,以查看是否正在发送 cookie。您的问题可能是最近浏览器对跨域 cookie 的限制引起的。

要进行比较,请参阅我的 Silent Token Renewal 博客 post。