Javascript 如何使用锁v11从auth0 passwordless获取刷新令牌?

Javascript 如何使用锁v11从auth0 passwordless获取刷新令牌?,javascript,auth0,auth0-lock,Javascript,Auth0,Auth0 Lock,我有一个老式的angularJs应用程序,有两个页面。在这两个页面上,我都包含了auth0锁脚本 <script src="https://cdn.auth0.com/js/lock/11.9.0/lock.min.js"></script> 另一个页面负责在他们点击电子邮件中的链接后的回拨 var lock = new Auth0LockPasswordless(configuration.id, configuration.domain); lock.on('au

我有一个老式的angularJs应用程序,有两个页面。在这两个页面上,我都包含了auth0锁脚本

<script src="https://cdn.auth0.com/js/lock/11.9.0/lock.min.js"></script>
另一个页面负责在他们点击电子邮件中的链接后的回拨

var lock = new Auth0LockPasswordless(configuration.id, configuration.domain);

lock.on('authorization_error',
    function(authResult) {
        console.log("DEBUG::AUTHRESULT::", authResult);
});

lock.on('authenticated',
    function(authResult) {
        console.log("DEBUG::AUTHRESULT::", authResult);
});
现在我已经在请求的范围内设置了
offline\u access
,并且在我的本地环境中,在进行身份验证时,系统会提示我输入额外的权限(因此它正在成功完成)。但是,当我从('authenticated',函数(authResult)refreshToken上的lock.on检查日志时,refreshToken始终为空


web上存在一些相互冲突的文档,这两种建议都认为lock将返回刷新令牌,也不会返回刷新令牌。有人能确认此代码是否会生成有效的刷新令牌吗?

正如@user44在上面的评论中所说,您不应该在SPA(单页应用程序)中使用刷新令牌,因为它不是一个安全的客户端和安全存储它的方法。相反,请使用静默身份验证方法来请求新的访问令牌

根据您使用的SDK,auth0 spa js或auth0.js:

(免责声明:我作为高级解决方案工程师在Auth0工作)


更新(2020年5月7日):


需要注意的是,Auth0最近引入了刷新令牌轮换,Auth0 SPA SDK也支持该轮换。Hello Lucas,显然,即使使用无密码身份验证,也可以获取刷新令牌。我进行了一些搜索,发现您可能会遇到问题,因为您的规则是如何使用的tup.你能确认一下吗?@NathanielFredericks,我有一些自定义规则。这些规则都没有引用刷新令牌。到底是什么规则导致了这个问题?你的授权类型是什么?它应该是
refresh\u-token
。据我所知,你没有在无密码锁设置上设置
grant\u-type
。我将其作为测试添加到
auth.params.grant_类型:“刷新令牌”
。但是auth0响应仍然有一个空的刷新令牌。如果它是客户端web应用,我认为您不应该使用脱机访问或刷新令牌,而应该实现静默登录。刷新令牌永远不应该发送到浏览器。
var lock = new Auth0LockPasswordless(configuration.id, configuration.domain);

lock.on('authorization_error',
    function(authResult) {
        console.log("DEBUG::AUTHRESULT::", authResult);
});

lock.on('authenticated',
    function(authResult) {
        console.log("DEBUG::AUTHRESULT::", authResult);
});