Firebase:重新加载页面后身份验证暂时不起作用

时间:2020-10-25 15:45:33

标签: javascript reactjs firebase firebase-authentication next.js

我将Firebase身份验证与Next.js一起使用。我将auth数据存储在AuthContext(useContext)中,并且每次页面更改时都会获取currentUser。但是,currentUser的默认值是未定义的,因此在获取身份验证数据时,currentUser将返回未定义的值。当用户重新加载页面时,用户可以先浏览登录页面,然后再浏览首页。我想修复它,但不知道如何...

我听说将身份验证数据存储在localStorage或cookie中并不安全,所以我想知道如何存储身份验证数据。

const AuthContext = createContext<AuthContextProps>({ currentUser: undefined });

const AuthProvider = ({ children }: any): JSX.Element => {
  const [currentUser, setCurrentUser] = useState<User>(undefined);

  useEffect(() => {
    firebase.auth().onAuthStateChanged((user) => setCurrentUser(user));
  }, []);

  return <AuthContext.Provider value={{ currentUser: currentUser }}>{children}</AuthContext.Provider>;
};

export { AuthContext, AuthProvider };

此外,第三行的属性({ children }: any):可以使用哪种数据类型? 我想避免任何...

提前谢谢!

0 个答案:

没有答案