Gee*_*ets 11 javascript cookies angularjs
我正在寻找一个更好的方法解决我的问题.我在登录表单上记住了我的功能.用户点击"记住我"框,我的API发送给我令牌.
我的问题是,当他们回到我的网站时,存储此令牌并再次验证用户的最佳方法是什么?
我的想法,
请给我任何可能对我有帮助的建议.
Uma*_*med 14
使用ngCookies: ngCookies模块为读取和编写浏览器cookie提供了方便的包装.
首先,您使用bower bower install angular-cookies@X.Y.Z
或manully在应用程序中安装ngCookies .
然后注入ngCookies
您的应用程序
angular.module('app', ['ngCookies']);
然后简单地使用喜欢
angular.module('App', ['ngCookies'])
.controller('demo', ['$cookies', function($cookies) {
// Setting a cookie
$cookies.put('cookieName', 'object');
// Retrieving a cookie
var sample= $cookies.get('cookieName');
// Remove a cookie
$cookies.remove('cookieName');
}]);
Run Code Online (Sandbox Code Playgroud)
我会使用document.cookie和这样的工厂代码:
创建一个cookie(例如,这个cookie在一年后到期):
app.factory('$remember', function() {
return function(name, values) {
var cookie = name + '=';
cookie += values + ';';
var date = new Date();
date.setDate(date.getDate() + 365);
cookie += 'expires=' + date.toString() + ';';
document.cookie = cookie;
}
});
Run Code Online (Sandbox Code Playgroud)
这个工厂删除了cookie:
app.factory('$forget', function() {
return function(name) {
var cookie = name + '=;';
cookie += 'expires=' + (new Date()).toString() + ';';
document.cookie = cookie;
}
});
Run Code Online (Sandbox Code Playgroud)
然后,只要用户使用$ remember成功登录缓存密钥:
$remember('my_cookie_name', response.user._id);
Run Code Online (Sandbox Code Playgroud)
并且在登录用户时始终检查cookie是否存在,否则使用标准登录并将其保存到cookie中.如果没有启用记住我,请忘记document.cookie
归档时间: |
|
查看次数: |
20800 次 |
最近记录: |