我正在寻找一种方法来做这两件事情,首先我想将用户重定向到登录页面,如果没有发现SessionID,第二个我想听到您对持久化内存中的会话ID(无cookie)的意见.
原文链接:https://www.f2er.com/angularjs/143076.html1 – 创建一个名为OAuth的服务,将检查SessionID是否存在,如果不存在,则重定向到登录页面,该服务还负责登录和注销方法.
app.factory('OAuth',['$http',function ($http) { var _SessionID = ''; return { login: function () { //Do login ans store sessionID in var _SessionID },logout: function () { //Do logout },isLoggedIn: function () { if(_SessionID) { return true; } //redirect to login page if false } }; }]);
2 – 在每个控制器中注入新的OAuth服务,并检查用户是否已登录
app.controller('myCtrl',['$scope','OAuth',function ($scope,OAuth) { //check if user is logged OAuth.isLoggedIn(); }]);
问题:
1 – 在所有的控制器中都会调用isLoggedIn()方法,所以我想知道是否有办法,而无需注入服务并在每个控制器中调用它.
2 – 而不是有一个cookie存储sessionID,我想保存在OAuth的_SessionID变量,并且每个请求发送到服务器.这是可行/安全的方法吗?你能给我一些想法吗?
谢谢!