2012-06-26 2 views
3

Привет, ребята, я много читаю о Spring-Social, и у меня есть вопрос. Что такое параметр userLocalId в методе signIn SignInAdapter, где он принимает этот идентификатор? Я регистрирую пользователя через facebook, выбирая его в форме регистра. После этого я хочу, чтобы он нажал signIn_button (facebook signIn) и получил доступ к моему сайту.Понимание SignInAdapter весной-социальной

Должен ли я сделать что-то вроде этого: в SignInAdapter я получаю подключение к facebook и сравниваю его социальную информацию с полями в таблице моих пользователей?

ответ

3

Весенняя социальная интеграция состоит из 3 частей.

  • Регистрация
    В Signup локального пользователя создается на основе информации, предоставленной поставщиком
  • Connect
    В подключить отобразим локального пользователя к пользователю OpenId
  • зарегистрировались
    В зарегистрировались мы позволяет авторизованному пользователю с открытым доступом регистрироваться в нашей заявке

Подпись
В поле ввода SigninAdapter используется для загрузки локального пользователя, чтобы слой Spring Security мог его использовать. Здесь параметр localUserId указывает на идентификатор пользователя в нашем приложении. Поэтому в адаптере нам нужно загрузить этого пользователя как org.springframework.security.core.userdetails.User и установить его на SecurityContext.

экс:

LocalUser lu = getLocalUser(localUserId); // Load the local user from database 
User user = new User(lu.username, lu.password, lu.authorities) 
UsernamePasswordAuthenticationToken result = new UsernamePasswordAuthenticationToken(user, user.getPassword(), user.getAuthorities()); 
SecurityContextHolder.getContext().setAuthentication(result); 

Connect
Spring Социальные провайдеры org.springframework.social.connect.web.ConnectController, который поможет нам связать локального пользователя к пользователю OpenId.
Он требует, чтобы вы отправили запрос POST на номер /connect/<provider>, это перенаправит пользователя на страницу входа в систему поставщика, где пользователь должен аутентифицировать приложение.

+1

Yeah thx. Но как я могу использовать соединительную часть, если пользователь уже выполнил вход в мою собственную систему входа. –

+0

Вы хотите знать, как работает соединительная часть? –