我现在正在处理firebase身份验证,并且正在关注此Firebase文档。
访问https://firebase.google.com/docs/auth/admin/manage-cookies#sign_in
// When the user signs in with email and password.
firebase.auth().signInWithEmailAndPassword('user@example.com', 'password').then(user => {
// Get the user's ID token as it is needed to exchange for a session cookie.
return user.getIdToken().then(idToken = > {
// Session login endpoint is queried and the session cookie is set.
// CSRF protection should be taken into account.
// ...
const csrfToken = getCookie('csrfToken')
return postIdTokenToSessionLogin('/sessionLogin', idToken, csrfToken);
});
})
我希望我可以通过使用该功能获得令牌。但这不起作用,因为代码中的用户没有getIdToken()函数。
答案 0 :(得分:1)
要获取ID令牌,只需直接调用auth的currentUser#getIdToken
。
const idToken = await firebase.auth().currentUser.getIdToken()
答案 1 :(得分:0)
自 7。* 版本以来,事情似乎发生了变化。要获得它:
firebase.auth().signInWithEmailAndPassword('user@example.com', 'password').then(({ user }) => {
// Get the user's ID token as it is needed to exchange for a session cookie.
return user.getIdToken().then(idToken = > {
// Session login endpoint is queried and the session cookie is set.
// CSRF protection should be taken into account.
// ...
const csrfToken = getCookie('csrfToken')
return postIdTokenToSessionLogin('/sessionLogin', idToken, csrfToken);
});
})
请注意,您现在需要使用user.user.getIdToken()
,或者像我在示例中那样使用解构。