首先确认是否已经正确配置了GitHub SSO,可以使用其他应用测试是否能正常使用。
确认Angular和Spring Boot的版本兼容性。
在Angular应用中,使用ng2-cordova-oauth插件进行GitHub授权登录。例如:
import { CordovaOauth } from 'ng2-cordova-oauth/oauth';
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: ''
})
export class AppComponent {
private cordovaOauth: CordovaOauth = new CordovaOauth();
githubLogin() {
this.cordovaOauth.login('github').then(success => {
console.log('GitHub login success!');
console.log(success);
}, error => {
console.log('GitHub login error');
console.log(error);
});
}
}
@Configuration
@EnableOAuth2Sso
public class OAuthConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/error**")
.permitAll()
.anyRequest()
.authenticated();
}
@Bean
public ClientRegistrationRepository clientRegistrationRepository() {
return new InMemoryClientRegistrationRepository(githubClientRegistration());
}
private ClientRegistration githubClientRegistration() {
return ClientRegistration.withRegistrationId("github")
.clientId("github-client-id")
.clientSecret("github-client-secret")
.authorizationUri("https://github.com/login/oauth/authorize")
.tokenUri("https://github.com/login/oauth/access_token")
.userInfoUri("https://api.github.com/user")
.userNameAttributeName("id")
.clientName("GitHub")
.build();
}
}