Security AngularJS SSO安全性?
我们得到了一个角度的应用程序,我们得到了另一个Spring应用程序。登录由Spring管理,当用户登录时,Spring将重定向到Angular应用程序。当Spring重定向时,它会将身份验证令牌放入报头Security AngularJS SSO安全性?,security,spring-mvc,angularjs,single-sign-on,token,Security,Spring Mvc,Angularjs,Single Sign On,Token,我们得到了一个角度的应用程序,我们得到了另一个Spring应用程序。登录由Spring管理,当用户登录时,Spring将重定向到Angular应用程序。当Spring重定向时,它会将身份验证令牌放入报头 如何使用AngularJS获取该标记?因为AngularJS是javascript,所以您可以在HTML中的某个地方回显该标记。这是对angularApp的一次性重定向。这是我自己做的 要从Angular将http调用发送回Spring应用程序,我相信您也必须在头中发送该令牌(例如X-toke
如何使用AngularJS获取该标记?因为AngularJS是javascript,所以您可以在HTML中的某个地方回显该标记。这是对angularApp的一次性重定向。这是我自己做的
要从Angular将http调用发送回Spring应用程序,我相信您也必须在头中发送该令牌(例如X-token),这可以像
window.ngApp = angular.module('ngApp',[]);
ngApp.config(["$httpProvider", function(provider) {
provider.defaults.headers.common['X-Token'] = $('meta[name=csrf-token]').attr('content');
}]);
因此,每次发出http请求时,X-Token都将成为您请求的一部分 因为AngularJS是javascript,所以您可以在HTML的某个地方回显该标记。这是对angularApp的一次性重定向。这是我自己做的
要从Angular将http调用发送回Spring应用程序,我相信您也必须在头中发送该令牌(例如X-token),这可以像
window.ngApp = angular.module('ngApp',[]);
ngApp.config(["$httpProvider", function(provider) {
provider.defaults.headers.common['X-Token'] = $('meta[name=csrf-token]').attr('content');
}]);
因此,每次发出http请求时,X-Token都将成为您请求的一部分 可以,但此令牌不是csrf令牌,而是身份验证令牌。然后在HTML中回显这个令牌,就像回显用户密码一样。。。我不确定它是否真的安全。你看到了吗?我用饼干做的:)!服务器发送一个cookie,我在客户端得到它,它就像一个符咒!ThxIn我的案例需要CSRF令牌作为交叉签名,API调用也需要API密钥。但身份验证令牌不是加密的吗?如果javascript可以读取cookie,这难道不就像在html中重复那样吗?我的意思是人们会在inspector中看到cookie,对吧?当然令牌是镶嵌的。但是auth令牌和csrf令牌是不同的,将csrf令牌放在meta标记中是一个很好的实践,但是对于auth令牌,将其放在cookie中是正确的方式。但我认为这只是“风格”的标准。但我同意你的答案,因为它有效,如果没有它,我会花时间寻找解决方案。ThxI知道它们是不同的:)你用Cookies做这个是对的。在我的应用程序中,我从前端处理身份验证。这是因为当您的服务器会话被破坏时,您不希望将用户重定向到spring页面,而是希望从Angular应用程序处理它,如果可能的话,不中断当前URL(通过模式或其他方式)。无论如何,谢谢你接受这个答案。快乐编码!可以,但此令牌不是csrf令牌,而是身份验证令牌。然后在HTML中回显这个令牌,就像回显用户密码一样。。。我不确定它是否真的安全。你看到了吗?我用饼干做的:)!服务器发送一个cookie,我在客户端得到它,它就像一个符咒!ThxIn我的案例需要CSRF令牌作为交叉签名,API调用也需要API密钥。但身份验证令牌不是加密的吗?如果javascript可以读取cookie,这难道不就像在html中重复那样吗?我的意思是人们会在inspector中看到cookie,对吧?当然令牌是镶嵌的。但是auth令牌和csrf令牌是不同的,将csrf令牌放在meta标记中是一个很好的实践,但是对于auth令牌,将其放在cookie中是正确的方式。但我认为这只是“风格”的标准。但我同意你的答案,因为它有效,如果没有它,我会花时间寻找解决方案。ThxI知道它们是不同的:)你用Cookies做这个是对的。在我的应用程序中,我从前端处理身份验证。这是因为当您的服务器会话被破坏时,您不希望将用户重定向到spring页面,而是希望从Angular应用程序处理它,如果可能的话,不中断当前URL(通过模式或其他方式)。无论如何,谢谢你接受这个答案。快乐编码!