使用oltu实现自己的oauth2.0认证服务(一)

这边使用客户端凭证(client credentials)模式给客户端颁发凭证。

数据库表

  • tb_application:业务应用,里面有name、client_id、secret等字段。
  • tb_application_token:业务应用和token关联表,里面有access_token、refresh_token、expires_in、application_id等字段。

它们对应的实体类就不写了,属性同表里的字段。

引入oltu的maven依赖

新建一个springboot应用,里面加一个AuthorizationController

登录认证接口

上面的重点是applicationTokenService.getToken(appId),首先我们不可能每次获取token信息都直接从数据库里拿,中间需要加一层redis缓存。先从缓存里拿,拿不到再走数据库,然后缓存和数据库都拿不到需要生成一个与appId对应的token数据到缓存和数据库里。

redis配置类

ApplicationTokenServiceImpl

需要加上@CacheConfig注解

APPLICATION_TOKEN_CACHE是一个常量,这边随便写一个”tieasy-application-token”

getToken的具体实现

三个redis key的常量值

  • KEY_CLIENT_PREFIX:tieasy:redis_key_authorization:appId
  • KEY_ACCESS_TOKEN_PREFIX:tieasy:redis_key_authorization:access_token
  • KEY_REFRESH_TOKEN_PREFIX:tieasy:redis_key_authorization:refresh_token

具体的逻辑上面已经有介绍。

今天就先写到这,下篇写《使用oltu实现自己的oauth2.0认证服务(二)》。

0

《使用oltu实现自己的oauth2.0认证服务(一)》有2个想法

发表评论

邮箱地址不会被公开。