使用Spring Security快速实现Oauth2客户端配置
在Spring的强大生态中,我们很多时候只需要简单的配置就可以完成想要的需求。在Grtblog中,我使用了其提供的能力快速完成了Oauth2Client配置,实现了第三方账号的快速注册以及登录,更便于用户快速获得账号参与评论,提升用户体验。
安装依赖
在pom.xml
中添加相关的依赖并同步即可
创建流程
相关配置
得益于依赖的强大封装,我们只需要在application.yml
中配置好Oauth应用的信息即可
我们这里以Github和Google为例:
用户信息处理
首先,在Oauth的登录流程中,我们可以通过userInfoEndpoint
获得对应的OauthUser对象,也可以执行自己的一些处理,保存或者查找用户信息,因此,我们可以手动继承DefaultOAuth2UserService
自定义的用户信息处理
当我们拿到oauth2user对象后,我们便可以添加自己的相关处理逻辑
例如我们可以拿到用户的邮箱、头像、昵称等等信息,然后验证用户是否存在,不存在则创建,存在则直接查询相关信息
当获取了用户信息并保证其保存至数据库时,我们就可以执行登录完成的处理啦
登录后处理
当我们登录成功后,我们可以手动继承AuthenticationSuccessHandler
来实现自己的成功处理(回调)逻辑
这里我采用了jwt进行认证相关逻辑,因此我们可以采用设置cookie的方式将生成的token传递到前端,我们可以这么实现
这样我们便实现了重定向回网页和设置登录信息
前端配置
前端的配置就很简单啦,直接跳转一下网页,选择性携带一下URL编码的当前地址就可以啦
小小总结
对于Oauth2的相关流程,当前端用户点击则转到后端进行处理,换access_token和code等等,在框架拿到用户对象后便可以进行处理,结合cookie将其传到前端保存,由拦截器携带即完成了登录闭环
其实整个过程还是没啥技术含量的,但是毕竟我是主力前端的,这个还是不太了解还是有整理一下的必要的,善用轮子还是大大提高开发效率的