获取token令牌

/**
 * 登录的路由配置
 * 作用:把oAuth2.0颁发的token存储到redis中
 */
@Configuration
public class LoginRouteConfig {

    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    /**
     * 代码方式的路由存储token
     *
     * @param builder
     * @return
     */
    @Bean
    public RouteLocator loginRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
                .route("auth-server-route", r -> r.path("/oauth/token").filters(
                        f -> f.modifyResponseBody(String.class, String.class, (exchange, s) -> {
                            //s为响应的结果,类型为json,结构为{"access_token","expires_in"}
                            //将响应的json数据转换为json对象
                            JSONObject jsonObject = JSON.parseObject(s);
                            //查看是否包含access_token
                            if (jsonObject.containsKey("access_token")) {
                                //有:存放到redis中
                                //获取token值和过期时间
                                String access_token = jsonObject.getString("access_token");
                                Long expires_in = jsonObject.getLong("expires_in");
                                //将获取的值存放到redis中
                                stringRedisTemplate.opsForValue().set(GatewayConstant.TOKEN_PREFIX+access_token,"", Duration.ofSeconds(expires_in));
                            }
                            return Mono.just(s);
                            //uri是路由的目的地,(lb://auth-server是授权中心服务名称)
                        })).uri("lb://auth-server"))
                .build();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值