AngularJS访问令牌安全问题
从授权服务器检索访问令牌后,将其存储在AngularJS中的最佳实践是什么?我看到了很多关于使用localStorage服务的建议,但后来我读到了其他帖子/博客,它们说永远不要使用localStorage来存储令牌,它不安全等等 我很难用Angular软件来处理安全问题,因为上面的信息很复杂。我想AngularJS访问令牌安全问题,angularjs,oauth,thinktecture-ident-server,Angularjs,Oauth,Thinktecture Ident Server,从授权服务器检索访问令牌后,将其存储在AngularJS中的最佳实践是什么?我看到了很多关于使用localStorage服务的建议,但后来我读到了其他帖子/博客,它们说永远不要使用localStorage来存储令牌,它不安全等等 我很难用Angular软件来处理安全问题,因为上面的信息很复杂。我想 生成令牌(服务器端的敏感信息) 使用只有服务器知道的机器密钥对生成的令牌进行签名和加密。并获取加密令牌 然后将在步骤2中获得的加密令牌保存在cookies中 饼干过期时间应该非常少。使httponly
AngularAppFactory.GetApp=function(appName){
var app = angular.module(appName, []);
app.factory('httpRequestInterceptor', ['$rootScope', function($rootScope)
{
return {
request: function($config) {
if( $rootScope.user.authToken )
{
$config.headers['id'] = $rootScope.user.id;
$config.headers['auth-token'] = $rootScope.user.authToken;
}
return $config;
}
};
}]);
app.config(function ($httpProvider) {
$httpProvider.interceptors.push('httpRequestInterceptor');
});
return app;
}
//Whenever you need to get new angular app, you can call this function.
app = AngularAppFactory.GetApp('appName');
我正试图做到这一点。我缺少一些实现细节。我有一个asp.net mvc应用程序,它只处理登录逻辑,设置身份验证cookie,然后重定向到angular应用程序。登录逻辑涉及在不同服务器上的web api上调用令牌端点。当我拿回来的时候,我会把那个代币储存在饼干里。但是,我如何将该令牌从angular发送回webapi,而不手动将其放入授权标头中?您有哪些链接表明本地存储不是一个好主意?我手头没有这些令牌,但会再次将其挖掘出来。我对您和Dominick的工作很熟悉,很想听听您对将其存储在本地存储中的意见。这是您推荐的吗?我认为本地存储很好,只要您知道它是如何工作的。从某种意义上说,它与您用于网站登录的持久cookie没有什么不同。