保持用户登录,在反应通量应用程序中
Keeping user logged in, in a react flux app?
我正在开发一个 react-flux 应用程序,我正在使用 sessionStorage 通过检查 sessionStorage 中是否有电子邮件和身份验证令牌来保持用户登录。如果它们可用并且自登录以来的时间少于 15 分钟,我会触发 flux 操作以登录用户。我还有另一个功能,无论在 15 分钟后通过清除会话存储将用户注销。
它工作正常,直到我刷新页面。此时,在 15 分钟后注销用户的 setInterval 函数会自行重置。
以下是理解我所指内容的代码:
在我的父组件中,我有以下函数,我在组件DidMount函数中调用这些函数。
checkSession: function() {
if (!_.isNull(window.localStorage)) {
var currentTimeStamp = Date.parse(new Date());
var logInStamp = window.sessionStorage.time;
var difference = currentTimeStamp - logInStamp;
if (Math.floor((difference / 1000) / 60) < 15) {
var data = {
email: window.sessionStorage.email,
scheduler_slug: window.sessionStorage.slug
};
ActionCreator.loginUser(data);
}
}
},
logOut: function() {
if (this.state.isLoggedIn === true) {
window.sessionStorage.clear();
ActionCreator.logOutUser();
}
},
componentDidMount: function() {
Store.addChangeListener(this._onChange);
this.checkSession();
setInterval(this.logOut, 900000);
}
我正在为会话存储设置键值,因为我的 ajax 调用成功以创建会话。在随后的 api 调用中,我将从响应标头中的第一个调用中收到的令牌发回以进行身份验证。
我的问题是 2 个方面:
1) 我当前的方法是否足以维持用户会话?使用饼干会更好吗?
2)如果我目前的方法很好,那么我需要找到一种方法来防止计时器在页面刷新时重置,我认为这是一个简单的解决方法,但我所看到的一切都涉及使用cookie。还有别的办法吗?
- 这是非常主观的。如果这种方法对您有用,那没关系。饼干也是一个不错的选择,这取决于。您提到使用当前方法时遇到了一些麻烦(主要是页面刷新)。饼干可能会有所帮助,但也不是灵丹妙药。明智地选择最适合您的应用程序的内容(考虑您是否希望从库等调用服务器调用,这可能会在使用 cookie 时带来更多烦恼。
- 由于您已经在
sessionStorage
中存储了一些东西,因此您也可以选择将数据简单地存储在localStorage中。这将确保它保持不变,并且由于节省了时间,您基本上提供了自己的会话存储,从而在刷新后幸存下来。
旁注,sessionStorage
不应该在刷新时重置自身,它位于选项卡上下文中。因此,如果您打开一个新选项卡,您确实会获得一个新会话,如果您刷新,您应该拥有相同的存储空间。根据你的应用,你可能想要查看是否在某处替换数据,或者刷新是否发生在其他选项卡中。
相关文章:
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- 谷歌表单-根据分配给谷歌应用程序的工作为商业用户预先填充多项选择列表
- 正确传输和保护用户'web应用程序的密码
- 如何在网络应用程序中使用Firebase进行用户授权
- 我的购物应用程序不会将用户想要购买的东西相加,也不会打印总成本
- 通过chrome后台扩展或后台应用程序访问用户麦克风
- 在聊天应用程序中显示联机用户
- 如何获取运行我的 Web 应用程序的用户的 Windows 登录用户名
- 为用户应用程序托管 javascript 文件是否安全
- 捕获在Windows应用程序中启动其他应用程序的用户事件
- 计算喜欢我的帖子facebook应用程序的用户数量
- 在我的html页面-web应用程序用户界面的一个选项卡中的另一个html页面中的选项卡
- Phonegap android 向其他应用程序用户发送通知
- PhoneGap聊天应用程序用户可以看到其他人的消息
- Meteor.js中应用程序/用户设置的最佳实践是什么
- 如何为网络爬虫和单页应用程序用户制作网站
- 我如何使用图形API向我的应用程序用户发布消息?
- 用rails保存应用程序用户界面选项
- 用javascript获取应用程序用户
- 通过第三方web应用程序'用户帐户配置文件实现安全的社交媒体访问