甭管什么登录都给你接入到项目中去

网友投稿 696 2022-10-23

甭管什么登录都给你接入到项目中去

甭管什么登录都给你接入到项目中去

只需要通过下面几行简单的代码就可以完成集成:

@Bean DelegateClientRegistrationRepository delegateClientRegistrationRepository(@Autowired(required = false) OAuth2ClientProperties properties) { DelegateClientRegistrationRepository clientRegistrationRepository = new DelegateClientRegistrationRepository(); if (properties != null) { List registrations = new ArrayList<>( OAuth2ClientPropertiesRegistrationAdapter.getClientRegistrations(properties).values()); registrations.forEach(clientRegistrationRepository::addClientRegistration); } return clientRegistrationRepository; }

public void setDelegate(Function delegate) { this.delegate = delegate; }

然后在​​HttpSecurity​​中你这样配置就完全OK了:

把帐号配置进去就完事了,简单不简单,而且扩展性依然有保障,完全能够满足你的个性化需求。如果你想数据库管理这些参数,你可以自行扩展一下,也不难。

登录的效果成这样:

稍微一改成自定义页面,是不是高大上起来了呢?

登录成功后的逻辑,你可以写一个​​/​​接口:

@GetMapping("/") public Map index(@RegisteredOAuth2AuthorizedClient OAuth2AuthorizedClient oAuth2AuthorizedClient) { Authentication authentication = SecurityContextHolder.getContext() .getAuthentication(); Map map = new HashMap<>(2); // OAuth2AuthorizedClient 为敏感信息不应该返回前端 map.put("oAuth2AuthorizedClient", oAuth2AuthorizedClient); map.put("authentication", authentication); // todo 处理登录注册的逻辑 // todo 根据 authentication 生成 token cookie之类的 // todo 也可以用 AuthenticationSuccessHandler 配置来替代 return map; }

根据​​Authentication​​信息返回token也好、​​cookie​​​也好,都能实现。你也可以不写接口,配置一个​​AuthenticationSuccessHandler​​。

如果你有其它第三方OAuth2要对接,可以提供给胖哥配置,胖哥帮你免费搞定。

项目和DEMO地址是:

​​ ​​

记得给个star哦!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:校赛总结
下一篇:filewatcher一个简单的macOS审计和监控实用程序
相关文章

 发表评论

暂时没有评论,来抢沙发吧~