Auth0和javascript Lock v11出现问题




我正试图使用auth0和Lock v1登录表单在我的web应用程序上测试一个基本的身份验证模块。
这是我正在使用的代码的快照:

<script src="https://cdn.auth0.com/js/lock/11.23.1/lock.min.js"></script>
<script type="text/javascript" src="js/auth0variables.js"></script>
<script type="text/javascript" src="js/auth0app.js"></script>
<script>
$( document ).ready(function() {
console.log("start");
var lock = new Auth0Lock(AUTH0_CLIENT_ID, AUTH0_DOMAIN, {
auth: {
redirectUrl: 'undefined',
responseType: 'code',
params: {
scope: 'openid email' // Learn about scopes: https://auth0.com/docs/scopes
}
}
});
lock.show();
});
</script>

问题是我无法获得auth0模态,因为我得到了以下错误:

Uncaught TypeError: Cannot read property 'protocol' of null
at Object.getOriginFromUrl (auth0.min.esm.js:8)
at G.run (auth0.min.esm.js:8)
at $.checkSession (auth0.min.esm.js:8)
at nt.getSSOData (auth0.min.esm.js:8)
at t.getSSOData (p2_api.js:190)
at t.getSSOData (web_api.js:64)
at t.fetchFn (data.js:4)
at t.fetch (cache.js:17)
at t.get (cache.js:13)
at r (data.js:7)

我不明白我是否在Auth0面板上以错误的方式配置了我的应用程序,是否缺少调用Auth0Lock方法的一些配置参数,或者问题是否在其他地方<有人能帮我吗?谢谢>

我在ath0 github repo上的以下讨论中找到了一个解决方法:

https://github.com/auth0/lock/issues/1638

为了避免getLocationFromUrl返回null值,我在Auth0Lock构造函数中设置了redirectUrl选项

<script src="https://cdn.auth0.com/js/lock/11.23.1/lock.min.js"></script>
<script type="text/javascript" src="js/auth0variables.js"></script>
<script type="text/javascript" src="js/auth0app.js"></script>
<script>
$( document ).ready(function() {
console.log("start");
var lock = new Auth0Lock(AUTH0_CLIENT_ID, AUTH0_DOMAIN, {
auth: {
redirectUrl: 'http://localhost',
//redirectUrl: 'file://',
responseType: 'code',
params: {
scope: 'openid email' // Learn about scopes: https://auth0.com/docs/scopes
}
}
});
lock.show();
});
</script>

redirectUrl: 'http://localhost'redirectUrl: 'file://'这两个选项对我的开发来说都很好。

最新更新