创建跨域httpOnly cookie

问题描述 投票:0回答:0

我有一个网站在

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

node.js reactjs express cookies next
© www.soinside.com 2019 - 2024. All rights reserved.