我正在写一个Angular应用,它的后端是Grails和Spring Security。我不想将前端与后端耦合,所以我不使用任何gsp
,通信仅通过REST请求进行。
现在的问题是使用哪种身份验证。
表单认证可能很有用,但spring security会重定向到默认的表单页面,而我的登录页面在Grails之外(在Angular项目中)。我不需要从spring安全的表单页面,我只需要一个URL,我可以做我的post请求凭据,并得到一个cookie返回。
所以我从Basic authentication
开始,这很容易,但是我们必须为每个请求添加Authorization
标头,这很烦人,也不安全。
Spring security允许remember me
cookie,但它是耦合形成身份验证的,因此不可能(或很难)与基本身份验证一起使用。
无状态令牌身份验证(例如JWT)听起来很棒,但是不清楚如何用Grails配置它。Security插件的文档中没有提到无状态认证:http://grails-plugins.github.io/grails-spring-security-core/guide/index.html
那么在Spring security中从Angular进行身份验证的最佳方式是什么呢?您正在使用spring安全性的默认行为。如果需要无状态身份验证,则必须重写默认行为。