Auth0 和 Vue:渲染函数中的错误:"InvalidTokenError: Invalid token specified: Cannot read property 'replace' o



伙计们,我正在学习 Auth0 的 VueJS 教程,并收到此错误:

InvalidTokenError {message: "Invalid token specified: Cannot read property 'replace' of undefined"}
message:"Invalid token specified: Cannot read property 'replace' of undefined"

教程在这里:

https://auth0.com/blog/vuejs2-authentication-tutorial/

当应用程序应该调出 Auth0 锁定小部件时,错误就发生了。

思潮?

清除浏览器的本地存储缓存。 例如 对于 Chrome,按 F12 转到开发人员窗口,存储\本地存储,右键单击并清除。 对于 IE,F12 到开发人员窗口。在"控制台"选项卡上,运行命令

localStorage.clear()

抱歉,我无法评论您的问题,因为我的排名太低了。当我按照你的教程的反应版本时,我遇到了同样的错误。

就我而言,问题是由于在auth.js文件中,有一个名为getTokenExpirationDate(encodedToken)的函数。在该函数中,const token = decode(encodedToken);行是导致错误的原因。

通过调查 encodedToken 的值,我发现它的值是一个字符串,字符为'none',(不是值 none 本身!这使得编码函数非常不满意。

如果您进入 chrome 开发人员工具,请单击"应用程序"选项卡,打开左侧的"本地存储"选项,然后选择您的站点。您将能够看到存储在应用程序的本地存储中的所有键值对。就我而言,键id_token具有值none。如果您也是这种情况,只需从本地存储中删除该键/值对,页面应该能够再次加载。

希望这有帮助,祝你好运!

编辑通过使用chrome开发人员工具使用本地存储,我意识到本地存储可能有点问题。有时我尝试查看本地存储,但它没有出现。发生这种情况时,请尝试关闭并重新打开该工具。

我也遇到了这个问题。我激活了一个名为"auth0-授权扩展"的规则,该规则触发了此错误。

这为我修复了它。它是打字稿。如果不使用 TS,则可以删除(令牌:字符串)到(令牌)

function parseJwt (token: string) {
var base64Url = token.split('.')[0];
var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
var jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
}).join(''));
return JSON.parse(jsonPayload);
};

如果您在其他地方有令牌,则可以在cookie中复制令牌。

  1. 您可以在Insomia软件中找到您的令牌。
  2. 你可以复制它
  3. 返回浏览器并使用 F12 打开检查
  4. 打开自大并在那里粘贴令牌

相关内容

最新更新