我有一个网站在
localhost:3000
上运行,用户将从该网站登录,服务器将创建httpOnly刷新令牌,然后用户将被重定向到localhost:5000
上的仪表板
我的问题是如何让 localhost:5000 访问此刷新令牌,以便一旦用户将被重定向到 localhost:5000,网站
localhost:5000
将使用此刷新令牌生成访问令牌
在服务器上,我尝试使用以下选项创建一个 cookie
res.cookie('token', token, {
httpOnly: true,
domain: '.localhost',
path: '/',
maxAge: 1000 * 60 * 60 * 24 * 7,
})
在
localhost:5000
托管的网站上,我用受保护的路由包裹所有路由器,如下所示
import { useEffect } from 'react'
import styles from './style.module.scss'
import { Outlet } from 'react-router-dom'
import { useDispatch, useSelector } from 'react-redux'
import actions from '../../actions'
let isMounted = true
function AuthorizationRouter() {
const { isAuth, error, user } = useSelector((state) =>
state.isLoggedIn)
const dispatch = useDispatch()
useEffect(() => {
isMounted && dispatch(actions.users.isUserLoggedIn())
return () => {
isMounted = false
}
}, [])
if (error) {
console.log('🚀AuthorizationRouter ~ error:', error)
window.location.href = 'http://localhost:3000/login'
}
if (isAuth) {
console.log('🚀AuthorizationRouter ~ user:', user)
return <Outlet />
}
return (
<div className={styles.authorizationRouter}>
<div className={styles.container}>
<div className={styles.logo}>
<img src='/images/light_blue.png' alt='logo' />
</div>
<div className={styles.progress}>
<div className={styles.progress__bar}>
<div className={styles.progress__value}></div>
</div>
</div>
</div>
</div>
)}
export default AuthorizationRouter
这个场景将处于开发模式,但在生产模式下,主网站将托管在主域上,仪表板将托管在子域上,所以我如何在生产模式下实现这一点,就像在开发模式下一样
note ==>仪表板和服务器托管在
localhost:5000