REST spring boot中用户的授权和身份验证的最佳实践是什么?
我正在使用标准页面+ REST API for mobile构建Web应用程序。我查看了许多关于Spring安全性的文章,基本上大多数都采用了某种允许或阻止REST调用的fitler方法。然而,就我而言,我有一些基于用户是谁的身份验证逻辑。例如,有/update
API更新用户信息,用户可以更新自己,但无法更新其他人。
最初我想使用下一个身份验证架构:
这是正确的实施方法吗?在阅读有关弹簧靴安全性的文章之后,我的脑子里一片混乱。 至少:session auth对我不起作用(REST是无状态的)。我想为移动设备制作auth而不在那里存储登录名/密码。
在REST正文中传递此令牌是否有意义?什么是GET方法?
非常感谢您分享您的知识。
答案 0 :(得分:3)
您是否找到了问题的解决方案?
我在其他地方已经回答了这个问题,如果你确定你以后不想打开API给其他开发者/客户(如果你这样做,那么你应该看一下OAuth)然后基于一个简单的令牌解决方案将有效。
基本上就是这样的东西:
谷歌在这里建议采用这种方法:(编辑:谷歌似乎已经改变了我最初阅读的关于使用Google+登录和OAuth2.0的页面 - 我无法看到他们的一般移动/的链接API文档so here it is in the web archive :))
我也在这里写了我的实现:
Overview of the approach using Spring security
虽然这只是一个实验/概念证明,但它可能对你的思考有用。
答案 1 :(得分:0)
Cookie方法似乎非常适合用例。令牌可以与用户ID绑定。过滤器可以提取cookie并将用户ID作为标头传递给apis - 应该处理GET ...