【问题标题】:Firebase Authentication - REST API NodeJSFirebase 身份验证 - REST API NodeJS
【发布时间】:2019-06-22 21:00:12
【问题描述】:
使用和使用有什么区别
admin.auth().verifyIdToken() 和 admin.auth().createSessionCookie() + admin.auth().verifySessionCookie() 用于身份验证,我应该在我的 Express REST API 中使用哪一个?
另外,verifyIdToken 不是已经创建了一个可以在每次调用时刷新的会话本身吗?验证会话 cookie 是否也这样做?
【问题讨论】:
标签:
node.js
firebase
express
firebase-authentication
【解决方案1】:
您创建会话以在客户端设备上获取令牌并在服务器/云上使用验证令牌。
我从当前用户那里获取令牌,然后将其发送到 firebase 云函数端点进行验证。
端点
import * as admin from 'firebase-admin'
const DEPLOYED = false;
admin.initializeApp()
const ValidateToken = (request: any, response: any) => {
const params = {
a: request.body.token, // Client Validation
}
const ValidateToken = admin.auth().verifyIdToken(params.a).catch((error) => { throw { Message:error }});
return Promise.all([ValidateToken]).then((res: any) => {
return DEPLOYED ? res : response.status(200).json(res);
}).catch(error => {
return DEPLOYED ? error : response.status(400).json(error);
});
}
export default ValidateToken;