给REST接口做鉴权认证:OAuth

来源:互联网 发布:js数字拆分成数组 编辑:程序博客网 时间:2024/06/01 07:48

现在做的App和网站共用REST接口,用的是基于Cookie的认证,按照一般约定采用了30分钟的超时设置,浏览器超时后自动跳转到CAS认证,这个对网页端来说很正常,但是对于App, 并不是银行那样的安全性极高的App,30分钟过后再回来,发现又得重新登录一遍,太无法接受了……

为了解决这个问题,App采用了一个不得已的做法,定时ping后台接口……如果定时任务被杀,访问后台接口提示超时的话,再用本地存储的加密用户名和密码做一遍登录,实现表面上用户不用重新登录。

本地存储用户名和密码肯定是不合适的。

App做微信、QQ登录时了解了OAuth2认证,认识到AccessToken可以设置较长时间的有效期,可以存储在本地,过期后刷新Token就好。当时用的是基于友盟的SDK,没有深入了解OAuth2,以为它就是用于向第三方授权时使用。最近打算自己搭一套服务,前后台App都自己实现,重新思考了REST接口的认证问题。

参考了
如何设计好的RESTful API之安全性这里写链接内容
重新学习了OAuth
http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

发现原来OAuth2.0还有四种模式可选 :)

  1. 授权码模式(authorization code)
  2. 简化模式(resource owner
  3. 密码模式(password credentials)
  4. 客户端模式(client credentials)

适用于第三方的是授权码和简化模式,而对于自己的应用来用使用密码模式即可。

然后纠结了下那注册的问题OAuth管不管?
有个小伙也有这个疑问

不管。认证自己做个表单就好。
这几天再过一下Spring Security 和 OAuth整合~ 太麻烦的话,试试Node吧

0 2
原创粉丝点击