阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_18-认证接口开发-接口开发-service
定义AuthController
实现刚才写的api接口
controller定义热requestMapping 是 / 就可以了。
因为我们的登陆跟路径就是/auth. 这样到login就是 /auth/userlogin
定义Service
在controller里面注入Service。我们需要在service里面定义申请令牌的方法authService。里面需要账号、密码、clientId和CLientSecret
clientId和clientApp已经在配置文件内配置好了。可以直接注入到Controller里面就可以了。
通过@Value注入进来
定义一个对象来存储令牌
在service内定义方法
方法叫做login
这样方法就会在Service里面创建了
可以把之前写的测试的方法 直接复制过来 拿来用。
注入
复制过来的方法 只是把获取到了令牌。并没有把令牌存储到Redis。所以建议复制来的代码 单独定义一个方法叫做申请令牌的方法
applyToken申请令牌的方法
还有一个获取httpBasic的方法也复制过来。
替换为传过来的变量
bodyMap就是我们拿到的下面令牌的整个json信息
主方法调用,如果为空。那么就抛出异常
再定义一个异常的错误代码
存储到redis
注入StringRedisTemplate
主方法调用redis存储
redis过期时间在配置文件内配置了
注入过期时间
存储redis,如果没有成功就抛出存储失败的异常。
异常类里面再定义一个
最终参数返回
service认证的方法完成
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步