wol*_*239 15 authentication firebase firebase-authentication
我正在使用的网站使用Firebase身份验证,登录的不同用户对他们可以访问的页面拥有不同的权限.
登录的方式是设置类似于这篇文章:
我遇到的问题是,当他们访问新页面时,我正在尝试将令牌从客户端传递回服务器(几乎与在此Firebase文档中完成的方式相同),验证令牌并检查是否存在有权查看网页.
我正在努力找出最好(也是最安全)的方法.我考虑过以下选项:
我一直在尝试在请求标头中传递令牌,但据我所知,当用户点击指向其他页面的链接时(或者如果它在javascript中重定向),您无法添加标头.同样的问题适用于使用POST.
如果用户点击指向其他页面的链接,我该如何安全地将此信息传递到服务器并检查权限?
小智 10
您可以通过以下方式获取客户端上的accessToken(idToken):
var accessToken = null;
firebase.auth().currentUser
.getIdToken()
.then(function (token) {
accessToken = token;
});
Run Code Online (Sandbox Code Playgroud)
并将其传递到您的请求标头中:
request.headers['Authorization'] = 'Bearer ' + accessToken;
Run Code Online (Sandbox Code Playgroud)
并在您的服务器端获取带有您首选方法的令牌,并使用Firebase Admin SDK验证请求,如(Node.js):
firebaseAdmin.auth()
.verifyIdToken(accessToken)
.then(decodedIdToken => {
return firebaseAdmin.auth().getUser(decodedIdToken.uid);
})
.then(user => {
// Do whatever you want with the user.
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4540 次 |
| 最近记录: |