reactjs - 如何使用 React 和 Firebase 将注册用户从 domain.com 重定向到 app.domain.com?
问题描述
我构建了两个应用程序 domain.com - 登录页面 + 登录和注册表单。app.domain.com - 应用程序本身。
用户登录后,我使用 window.location 将他重定向到 app.domain.com
但是我没有成功构建可以做的事情:
检查用户是否有 FBtoken
将用户重定向到 app.domain.com
将令牌存储在 app.domain.com
从 firebase 获取用户
如果有这样的用户显示应用程序,如果没有重定向回 domain.com
这是 Domain.com 的 App 组件:
import React, { useContext } from 'react'
import { UserContext } from './../UserProvider'
import { Router } from '@reach/router'
import Homepage from './Homepage'
import Signup from './Signup'
import Login from './Login'
import PasswordReset from './PasswordReset'
function Application() {
const user = useContext(UserContext)
return user ? (
<a href='http://app.domain.com/'>Go to app</a>
) : (
<Router>
<Signup path='signUp' />
<Login path='signIn' />
<PasswordReset path='passwordReset' />
<Homepage path='/' />
</Router>
)
}
export default Application
我想我需要使用cookies来存储FBtoken而不是本地存储......但是,我读到Firebase每小时自动发送一个新的会话tokan,那么我如何用cookies实现它?
我没有添加 app.domain.com 代码,因为它太长了,我不知道要提供什么(contextProvider?App 组件?)请告诉我,我会添加任何必要的内容
感谢帮助者
解决方案
听起来您正在寻找会话 cookie,它可以让您更好地控制身份验证会话的生命周期和其他方面。这样做的一般流程是:
- 用户使用常规 Firebase 身份验证提供程序登录。
- 您的应用程序代码将用户的 ID 令牌发送到您创建的自定义端点(在您控制的服务器上或 Cloud Functions 中)。
- 在此端点中,您验证 ID 令牌,并从中创建一个会话 cookie。
- 然后,客户端从其先前的身份验证会话中注销,并使用会话 cookie 进行身份验证。
有关这方面的完整信息,请参阅有关会话 cookie的 Firebase 文档和此博客文章Firebase:为服务器端 Web 应用程序引入会话 cookie。
推荐阅读
- r - 如何在几微秒内创建多达 200-50 万个数字的序列
- postgresql - postgresql 中没有活动/空闲会话仍然存在临时文件
- c++11 - 如何使用不同文件中的每个类创建 C++ 程序
- python - 使用 TensorFlow 2 中的生成器转换存储在 CSV 或 parquet 文件中的数据以提供 Keras lstm 模型
- ios - 在 Swift5 中使用苹果登录
- reactjs - 如何在不重复代码的情况下使我的路由组件更紧凑
- php - 如何在 Bitrix24 应用程序中调用 MySQL 存储过程
- python - 查询集不会在表单上更新
- css - CSS - 如何垂直对齐拆分导航栏(左右浮动图标)和混合块/内联项目
- bootstrap-4 - 如果引导行位于左浮动元素旁边,则引导行不会填充 Safari 上的其余空间