如何解决在React Native中扩展Firebase Auth“ stsTokenManager”中的“ expirationTime”
如何在Firestore响应中延长expirationTime?在这里使用Firestore JavaScript SDK。而且在React Native移动开发中也需要访问accessToken。
import firebase from 'firebase/app';
firebase.initializeApp(firebaseConfig);
const auth = firebase.auth();
export const login = (email,password) => {
return async dispatch => {
try {
const response = await auth.signInWithEmailAndPassword(email,password);
//console.log(response);
dispatch(authenticate(response.user.uid,""));
//console.log(response.user.stsTokenManager.expirationDate," AAA");
const expirationDate = new Date(
new Date().getTime() + parseInt(response.user.stsTokenManager.expirationTime) * 1000
);
saveDataToStorage( response.user.uid,expirationDate);
} catch (error) {
throw new Error(error?.message || 'Authenticating user failed');
}
};
};
console.log(response)
输出
Object {
"user": Object {
"stsTokenManager": Object {
"accessToken": "","apiKey": "","expirationTime": 1597168005772,"refreshToken": "",},"tenantId": null,"uid": "",}
解决方法
您不能更改所提供令牌的到期时间。它将在最后一次刷新后1小时过期。然后,令牌将需要再次刷新,新令牌将持续一小时。除此之外,没有其他选择-出于安全原因需要刷新。
Firebase Auth SDK将自动为登录用户刷新令牌。您无需执行任何操作即可实现此目的。如果您想知道令牌何时刷新,则应使用onIdTokenChanged为其设置侦听器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。