SpringBoot 整合 Github Oauth2 登录

创建应用

配置回调地址

http://localhost:8080/login/oauth2/code/github

/login/oauth2/code/github 是框架默认回调地址 , 必须配置成这个

Spring 配置

spring:
  security:
    oauth2:
      client:
        registration:
          github:
            clientId: 11d48799b5cbf9a06fb0
            clientSecret: a3712f866ae116cc42c039933c18255af88ca345

安全配置代码

@Configuration
public class ResourceServerConfiguration extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // @formatter:off
        http
                .authorizeRequests(a -> a
                        .antMatchers("/", "/error", "/webjars/**").permitAll()
                        .anyRequest().authenticated()
                )
                .exceptionHandling(e -> e
                        .authenticationEntryPoint(new HttpStatusEntryPoint(HttpStatus.UNAUTHORIZED))
                )
                .oauth2Login();
        // @formatter:on
    }
}

控制器获得用户信息

@SpringBootApplication
@RestController
public class ResourceServerApplication {
    @GetMapping("/user")
    public Map<String, Object> user(@AuthenticationPrincipal OAuth2User principal) {
        return Collections.singletonMap("name", principal.getAttribute("name"));
    }

    public static void main(String[] args) {
        SpringApplication.run(ResourceServerApplication.class, args);
    }
}
Last Updated:
Contributors: mcs