Я хочу реализовать OAuth2 с Vaadin 14 и Spring Boot. Я использую сервис Facebook OAuth2.
Сначала я создаю свой вид входа в систему. Это основной вид.
@Route
@PWA(name = "Vaadin Application",
shortName = "Vaadin App",
description = "This is an example Vaadin application.",
enableInstallPrompt = true)
@CssImport("./styles/shared-styles.css")
@CssImport(value = "./styles/vaadin-text-field-styles.css", themeFor = "vaadin-text-field")
public class MainView extends VerticalLayout {
/**
*
*/
private static final long serialVersionUID = 1L;
public MainView() {
Button login = new Button("login");
login.addClickListener(e->{
UI.getCurrent().navigate(LoginView.class);
});
add(login);
}
}
Затем я создаю свой вид для входа в систему.
@Route("Login")
public class LoginView extends VerticalLayout{
private static final long serialVersionUID = 1L;
public LoginView() {
Label loggedIn = new Label("You are logged in");
add(loggedIn);
}
}
Хорошо! Теперь я включаю OAuth2 для весенней загрузки.
@EnableOAuth2Sso
@Configuration
public class OAuth2Configuration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/Login")
.authorizeRequests()
.antMatchers("/")
.permitAll()
.anyRequest()
.authenticated();
}
}
При переходе от www.localhost: 8080 к www.localhost: 8080 / Login. Я не могу перейти на страницу входа в Facebook. Затем, когда Facebook отправил меня обратно. Я хочу отобразить адрес электронной почты пользователя, который только что вошел в систему. Просто чтобы убедиться, что указанные c адреса электронной почты могут быть зарегистрированы на моей странице.
В этом случае логин Facebook не отображается. Появится просто кнопка, сделанная мной. Когда я нажимаю на мою кнопку, то стою, что я вошел в систему.
Вот мой application.yml
файл.
security:
oauth2:
client:
clientId: myCliendID
clientSecret: myClientSecret
accessTokenUri: https://graph.facebook.com/oauth/access_token
userAuthorizationUri: https://www.facebook.com/dialog/oauth
tokenName: oauth_token
authenticationScheme: query
clientAuthenticationScheme: form
resource:
userInfoUri: https://graph.facebook.com/me