SpringBoot 整合 JustAuth 实现第三方登录 | gitee登录

一、第三方登录

在实现第三方登录前,咱们先聊聊第三方登录背后大致的实现逻辑吧,代码实现其实很简单,思想在这种时候,可能比代码更为重要一些。

现在只要稍微大点的网站或是app都会支持第三方登录吧,面对我们开发者居多的 gitee、github、google等,面对普通用户较多的qq、微信等第三方登录。

第三方登录大都是基于OAuth2.0协议实现的,OAuth是一项协议,它为用户资源的授权提供了一个安全、开放而简易的标准,OAuth的授权不会使第三方触及到用户的账号信息(比如密码)。

市面上也有很多例子,像我们平常肯定也是使用过第三方登录的。

假如你注册一个平台,在你选择使用第三方登录时,一般都会跳转到你选择的登录平台的登录页面去,在那里进行密码的输入,以及用户信息的验证。你注册的那个平台,不会接触到你的密码账号信息等信息,一般都是授权一些昵称、头像等基本信息的使用,一定程度上保护了你本人的一些信息在网络上的扩散和泄露。

二、项目中接入Gitee登录

如果是自己从0到1实现第三方其实也是可以的,只不过要不过自己封装一些请求罢了。市面有并且不止一种方面帮我们造出了轮子,适当地学会偷懒还是可以的~

这个适当的偷懒,并非说让大家依赖在使用这一层,在能够使用之后,你应该要有好奇和热爱探索的时候,你该去试着想一想还有没有更简便的方式,又或是你自己可以封装这样的一个工具吗?亦或是心中有那么一种想知道它是如何实现的想法。

我觉得这才是学习时候的成长,并且就算是在以后突然多了一些定制化的需求,你也有足够大的把握去实现它。

被动的推动,远不如自我的好奇来得实在和有趣~

2.1、准备环境

创建一个Springboot项目,

导入jar~

拥有一个Gitee账号~

2.1.1、gitee创建一个应用

在个人设置中,找到数据管理中的第三方应用。

然后点击创建应用:

创建成功后,拿到Client ID、Cl

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Spring Boot应用程序中实现Gitee登录,你需要执行以下步骤: 1. 创建一个Gitee应用程序并获取客户端ID和客户端密钥。可以在Gitee的开发者中心创建应用程序。 2. 添加Spring Security依赖项。 3. 在Security Configuration中配置OAuth2客户端。 下面是一个简单的配置示例: ```java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/login/**") .permitAll() .anyRequest() .authenticated() .and() .oauth2Login() .loginPage("/login") .defaultSuccessURL("/") .failureUrl("/login?error=true") .and() .csrf() .disable(); } @Bean public ClientRegistrationRepository clientRegistrationRepository() { return new InMemoryClientRegistrationRepository(giteeClientRegistration()); } private ClientRegistration giteeClientRegistration() { return ClientRegistration.withRegistrationId("gitee") .clientId("your-client-id") .clientSecret("your-client-secret") .clientAuthenticationMethod(ClientAuthenticationMethod.POST) .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE) .redirectUriTemplate("{baseUrl}/login/oauth2/code/{registrationId}") .scope("user_info") .authorizationUri("https://gitee.com/oauth/authorize") .tokenUri("https://gitee.com/oauth/token") .userInfoUri("https://gitee.com/api/v5/user") .userNameAttributeName(IdTokenClaimNames.SUB) .jwkSetUri("https://gitee.com/oauth/keys") .clientName("Gitee") .build(); } } ``` 在上面的代码中,我们使用Spring Security OAuth2客户端支持来配置Gitee登录。 在configure()方法中,我们通过.antMatchers()方法指定/login/**路径可公开访问,任何人都可以访问它。 我们还用.anyRequest().authenticated()确保所有其他请求都需要一个已经认证的用户。 在oauth2Login()方法中,我们设置了登录页面,成功的默认URL和错误URL。 最后,我们通过clientRegistrationRepository()方法将客户端注册添加到Spring Security中。 在giteeClientRegistration()方法中,我们使用ClientRegistration.withRegistrationId()方法创建一个新的客户端注册。我们设置客户端ID和密钥,并指定客户端认证方法。 我们还设置了授权类型,重定向URI模板,作用域,授权URI,令牌URI,用户信息URI,用户名属性名称,JWK集合URI和客户端名称。 为了使此配置生效,你需要在Spring Boot应用程序中提供以下属性: ``` spring.security.oauth2.client.registration.gitee.client-id=your-client-id spring.security.oauth2.client.registration.gitee.client-secret=your-client-secret ``` 这样,你就可以使用Gitee登录来保护你的Spring Boot应用程序了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值