Javascript 扩展;“到期时间”;在Firebase Auth中;stsTokenManager";以自然反应

Javascript 扩展;“到期时间”;在Firebase Auth中;stsTokenManager";以自然反应,javascript,firebase,react-native,firebase-authentication,Javascript,Firebase,React Native,Firebase Authentication,如何在Firestore响应中延长expirationTime?这里使用Firestore JavaScript SDK。在React本地移动开发中也需要访问accessToken import firebase from 'firebase/app'; firebase.initializeApp(firebaseConfig); const auth = firebase.auth(); export const login = (email, password) => {

如何在Firestore响应中延长expirationTime?这里使用Firestore JavaScript SDK。在React本地移动开发中也需要访问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(响应)
output

Object {
"user": Object {
    "stsTokenManager": Object {
      "accessToken": "",
      "apiKey": "",
      "expirationTime": 1597168005772,
      "refreshToken": "",
    },
    "tenantId": null,
    "uid": "",
  },
}

您无法更改所提供令牌的过期时间。它将在上次刷新后1小时过期。然后需要再次刷新令牌,新令牌将持续一个小时。除此之外没有其他选择-出于安全原因,需要刷新


Firebase Auth SDK将自动刷新登录用户的令牌。要实现这一点,您无需做任何事情。如果您想知道令牌何时刷新,您应该使用设置一个侦听器。

当从应用返回并再次使用应用时,会导致用户在令牌过期之前再次输入凭据。有什么解决方法吗?如果你有一个新问题,请单独发布,包括没有按照你期望的方式工作的代码。您应该使用身份验证状态侦听器来确定用户是否已登录。谢谢Doug:)