OATH 2.0 & OpenID Connect
- https://www.youtube.com/watch?v=996OiexHze0 (good for OATH2.0 & OpenID Connect)
- https://www.oauth.com/
Best Practices
-
Use OAuth 2.0 for Authorization scenarios to:
-
Grant access to your API
-
Get access to user data in other systems
-
-
Use OpenID Connect for Authentication scenarios to:
-
Log in users
-
Making your accounts available in other systems
-
为什么要刷新 access token 呢?一是因为 access token 是有过期时间的,到了过期时间这个 access token 就失效,需要刷新;二是因为一个 access token 会关联一定的用户权限,如果用户授权更改了,这个 access token 需要被刷新以关联新的权限。
为什么要专门用一个 token 去更新 access token 呢?如果没有 refresh token,也可以刷新 access token,但每次刷新都要用户输入登录用户名与密码,多麻烦。有了 refresh token,可以减少这个麻烦,客户端直接用 refresh token 去更新 access token,无需用户进行额外的操作。
这段客户端代码与前一步中客户端代码的主要区别是少了下面传递 resource owner 用户名与密码的代码,这就是 refresh token 的用途所在 —— 不需要ResourceOwner的用户名与密码(client_id和client_secret是需要的)就可以刷新 access token。
Spring Security
- https://spring.io/guides/topicals/spring-security-architecture/ (Chinese ver: https://www.jianshu.com/p/61d3af5fa1ba )
- https://www.jianshu.com/p/6dd03375224d
- http://www.cnblogs.com/xingxueliao/p/5911292.html
- http://projects.spring.io/spring-security-oauth/docs/oauth2.html