角度 js 返回用户自动登录
angular js returning user autologin
我有一个通过令牌的身份验证系统。用户使用电子邮件和密码登录,令牌将返回并保存在 cookie 中。现在,如果用户关闭浏览器或选项卡并返回站点,则用户将使用cookie中的令牌进行身份验证,但是,这可能需要相当多的毫秒,并且如果他们返回到安全站点(例如其用户配置文件),并且应用程序不够快,无法加载初始用户数据并将其标记为已登录, 然后他们被重定向到登录页面。
我的第一个想法只是将用户数据放在每个请求的响应中,其中令牌是有效的,但这会产生大量不必要的数据流量。
有没有更好的解决方案?
在路由上使用解析以等待加载用户信息。因此,是重定向到登录页面还是允许路由访问取决于加载用户处理程序的处理程序。例如:
function requiresLogin(){
return ["$auth",function($auth){
return $auth.verifiedUser();
}];
}
$routeProvider.when("...",{
....,
resolve:{
user:requiresLogin()
}
});
在您的$auth服务中:
angular.module("app").factory("$auth", ["$q", "$http", function($q,$http){
var loaded, loggedIn = false;
//load user
loaded = $http.get(....).then(function(result){
loggedIn = result.loggedIn;
});
return {
verifiedUser:function(){
return loaded.then(function(){
if(loggedIn)
return true;
else
return $q.reject();
});
}
};
}]);
未经测试的代码,只是为了给出一个关于如何做到这一点的想法。
如果没有更多的代码,我们无法提供明确的答案。
相关文章:
- 需要提取当前登录用户的用户名以在字段中输入
- 如何获取登录用户的twitter oAuth令牌
- 如何向登录用户隐藏选择加入脚本
- 如何使用javascript确定登录用户的浏览器版本和IP地址
- 获取登录用户的电子邮件(Firebase安全规则)
- Facebook js-sdk可以't检索已登录用户的名称
- Sencha Touch 2-登录用户状态
- 在 SharePoint 中获取登录用户的用户名并立即使用它
- jQuery / bubbling - 如何为非登录用户停止我的 JavaScript 代码
- 如何在 Meteor 的服务器上创建用户帐户后自动登录用户
- 使用javascript基于登录用户重定向URL链接
- FB的替代内容,例如非登录用户的框
- 插座.IO - 同一登录用户在两个不同浏览器中使用 socket.id
- 骨干.js如何跟踪登录用户状态和有关应用程序结构的一般建议
- 执行流星重置时,登录用户的应用程序页面冻结
- 像Yelp和urbandictionary这样的网站如何防止非登录用户的双重投票
- 主干.js具有用于创建用户和登录用户的验证的模型
- 网站似乎在没有向服务器发送密码的情况下登录用户;这是怎么回事
- Express js会话——仅为登录用户创建
- 如何使用phonegap+quickblox注册/登录用户