项目代码地址: https://github.com/miyacai/spring2go
https://github.com/miyacai/spring2go/tree/master/oauth2learn/learn01/authcode-server
https://github.com/miyacai/spring2go/tree/master/oauth2learn/learn01/implicit-server
https://github.com/miyacai/spring2go/tree/master/oauth2learn/learn01/password-server
https://github.com/miyacai/spring2go/tree/master/oauth2learn/learn01/client-server
这里特殊说明:
项目由于是实验性质的代码,写的相对简单。很多不符合生产实际的要求。这个要区别对待,只是实验代码。
另外,像资源接口,和资源服务器配置类,应该写在一个项目中,部署在资源服务器上,而授权相关的代码,应该写在授权单独的服务中,
部署在授权服务器上,最少,在微服务的架构下,至少保证端口是隔离的。
单体架构就另当别论了。
- 支持刷新令牌Refresh Token
- 使用关系数据库存储令牌和用户信息
- 使用缓存cache存储令牌提升性能
- 授权服务器和资源服务器分离
- Revoke端点实现
- Introspection端点的实现