【发布时间】:2021-09-14 16:03:39
【问题描述】:
我看到很多人都有这个问题(不仅仅是 Vue),当你尝试注销用户时会看到这个错误:
{
"errorCode": "invalid_client",
"errorSummary": "A client_id must be provided in the request.",
"errorLink": "invalid_client",
"errorId": "oae1R3sir06RJOLBoPOl08IUQ",
"errorCauses": []
}
这非常令人困惑,因为 Okta 文档没有说您需要将 client_id 指定为查询参数,而是您需要提供 id_token_hint 和 post_logout_redirect_uri。我已经尝试了多种方法,首先使用内置的 Vue auth 模块:
this.$auth.logout();
此方法重定向到正确的注销 url,但仅提供 client_id 和重定向 url 作为查询参数(与此处的 Okta 文档不匹配:https://developer.okta.com/docs/guides/sign-users-out/vue/sign-out-of-okta/
在查看了该文档后,我设置了这样的方法:
this.token = (this.$auth.strategy as LocalScheme).token.get() as string;
this.token = this.token.replace('Bearer ', '');
// Clear remote session
window.location.href = `${
this.$auth.ctx.$config.OAUTH_ISSUER
}/v1/logout?id_token_hint=${
this.token
}&post_logout_redirect_uri=${encodeURIComponent(
'http://localhost:3000'
)}`;
两种方法都给出了完全相同的错误,此时我无法判断这是否是 Okta 应用程序设置的问题,或者是我在提供查询参数时做错了什么。
【问题讨论】:
标签: typescript vue.js nuxt.js okta