gpt4 book ai didi

javascript - 选项卡打开时持续的 session 的身份验证逻辑

转载 作者:行者123 更新时间:2023-11-30 11:55:38 25 4
gpt4 key购买 nike

假设您正在开发一个通过第 3 方 API 执行身份验证的前端应用程序。成功的身份验证返回一个 json 网络 token 。

当用户在网站上处于事件状态时(即不关闭选项卡或浏览器)存储此类 token 并为用户创建某种 session 的最佳做法是什么,但是刷新/重新加载页面不应破坏此类 session 。

还有,这个session怎么用来保护路由呢?我正在使用由 react/redux/node/express 和其他一些库组成的堆栈。我相信我可以在我的 react-router 中执行某些检查,但是在 express 端执行这些不是更好吗?

最佳答案

您可以将 token 存储在 localStoragesessionStorage 中,并将其包含在每个 API 请求中。

Local storage超过选项卡,它会存储在那里,直到您明确地从中删除,所以刷新页面不会有问题。即使关闭标签然后再回来也不会。

Session storage允许您存储数据。页面刷新很好,但选项卡关闭不是,这更接近您想要的行为。

至于保护路由,服务器显然应该检查对所有 protected API 路由的请求的 token 。

在浏览器端,如果用户尝试访问 protected 路由但 token 不存在(或无效),您可能希望显示登录表单。

使用 react-router,您可以通过 onEnter hooks 像示例中的官方 repo 那样进行操作:https://github.com/reactjs/react-router/blob/master/examples/auth-flow/app.js

另一种方法是创建两个顶级组件,一个用于 protected 路由,一个用于公共(public)路由(如登陆页面或登录/注册表单)。然后, protected 处理程序将在 componentWillMount 中检查是否有 token :

- PublicHandler 
+ SignIn
+ SignUp
+ Index

- ProtectedHandler
+ Dashboard
+ MoneyWithdrawal

关于javascript - 选项卡打开时持续的 session 的身份验证逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38075542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com