我正在尝试获取我当前登录的网站用户的令牌.但是,javascript无法为我获得价值.我认为这里有两个问题:
>当我在启动时收到Auth.currentUser时,我收到“TypeError:无法读取属性’getToken’为null”的错误.但是当我在控制台中键入Auth.currentUser.getToken()时,带有令牌的对象实际显示出来.
> getToken()返回给我的是一个promise对象,其键’ea’包含令牌的值.但是当我做Auth.currentUser.getToken()时,它会让我’空’.如何直接从对象中检索令牌?
谢谢!
我检索令牌的代码:
var Auth = firebase.auth() var token = Auth.currentUser.getToken()
解决方法
根据
documentation of
firebase.User:getIdToken()
:
Returns a JWT token used to identify the user to a Firebase service.
Returns the current token if it has not expired,otherwise this will refresh the token and return a new one.
该方法返回一个承诺,因为如果令牌已过期,它可能需要往返Firebase服务器的往返:
Auth.currentUser.getIdToken().then(data => console.log(data))
或者更经典的JavaScript:
Auth.currentUser.getIdToken().then(function(data) { console.log(data) });
日志输出:
ey…biPA
更新:要确保用户在获取令牌之前已登录,请在onAuthStateChanged
listener中运行以上代码:
firebase.auth().onAuthStateChanged(function(user) { if (user) { user.getIdToken().then(function(data) { console.log(data) }); } });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。