Vuejs2 Auth0和Vue:呈现函数中出现错误:“InvalidTokenError:指定的标记无效:无法读取未定义的属性“replace”

Vuejs2 Auth0和Vue:呈现函数中出现错误:“InvalidTokenError:指定的标记无效:无法读取未定义的属性“replace”,vuejs2,auth0,Vuejs2,Auth0,伙计们,我正在浏览Auth0的VueJS教程,发现以下错误: InvalidTokenError {message: "Invalid token specified: Cannot read property 'replace' of undefined"} message:"Invalid token specified: Cannot read property 'replace' of undefined" 教程如下: 当应用程序应该启动Auth0锁小部件时,错误就发生了 想法?对不起

伙计们,我正在浏览Auth0的VueJS教程,发现以下错误:

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

当应用程序应该启动Auth0锁小部件时,错误就发生了


想法?

对不起,我不能对你的问题发表评论,因为我的排名太低了。当我遵循react版本的教程时,也出现了同样的错误

本例中的问题是由于auth.js文件中有一个名为getTokenExpirationDateencodedToken的函数。在该函数中,line const token=decodedtoken;是引起这个错误的原因

通过调查encodedToken的值,我发现它的值是一个带有字符“none”的字符串,而不是值none本身!。这使得编码功能非常不愉快

如果进入chrome开发者工具,请单击应用程序选项卡,打开左侧的本地存储选项并选择您的站点。您将能够看到应用程序本地存储中存储的所有键值对。在我的例子中,key id_标记的值为none。如果您也是这样,只需从本地存储中删除该键/值对,页面就可以再次加载

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

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

清除浏览器的本地存储缓存。 例如 对于Chrome,按F12键进入开发者窗口,存储\本地存储,右键单击并清除。 对于IE,F12至开发者窗口。在“控制台”选项卡上,运行命令

localStorage.clear()

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

这为我修复了它。这是打字稿。如果不使用TS,您可以将token:string删除到token

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);
};

如果您在另一个地方有令牌,您可以在cookies中复制令牌

你可以在失眠症软件中找到你的代币。 你可以复制它 返回浏览器并用F12打开inspect 打开cockies并在那里粘贴令牌
这是我见过的最奇怪的错误,但是在Angular 4不允许我加载页面时,你的localStorage.clear修复了它!谢天谢地,为什么会这样?这为我解决了问题。但请解释为什么会这样做?您的本地存储中可能有一个同名但有效负载无效的令牌,应用程序正在尝试读取/解码该令牌,但无法读取/解码。清除本地存储将删除所有令牌,然后您可以使用有效负载创建一个新令牌,您的应用程序可以读取/解码该令牌。已保存我的一天。谢谢,关闭并重新打开控制台就成功了。在清除本地存储之后。这仍然是一个奇怪的问题,因为我在LS中的令牌是完全有效的。我也有同样的问题,目前正在调查是否可以找到解决方案。