Процесс входа в систему: аутентификация WSSE и вход через Facebook

Я играю с аутентификацией WSSE (через Symfony2) и определил следующий классический процесс входа в систему:

  1. Пользователь вводит свое имя пользователя и пароль и получает соответствующую соль с сервера.
  2. имя пользователя и пароль проверяются на сервере (вызов ajax) с помощью проверки заголовка WSSE.
  3. Если учетные данные действительны, необходимые данные (т.е. данные, которые позволяют повторно генерировать заголовок WSSE при каждом запросе) сохраняются в браузере.

Это полностью работает.

Теперь я хотел бы добавить функцию «Войти через facebook». Это не проблема, по нему есть много документации, НО моя цель и моя трудность - поддерживать логическую работу WSSE.

Поскольку пользователь никогда не вводит свой пароль, если он входит в систему через Facebook, я не могу генерировать заголовки wsse, и для этого вообще нет документации.

Кто-нибудь уже имел дело с такой операцией? заранее спасибо


person Bil5    schedule 07.10.2015    source источник


Ответы (1)


решение, которое я нашел, следует этому порядку:

1) Создайте веб-сервис не под брандмауэром wsse, а защищенный токеном заголовка или чем-то еще, например x-token: fdslkjl324l2lrkljlkfsjflkjfkljl2, который возвращает зашифрованный пароль из базы данных для данного пользователя.

например: у вас должен быть веб-сервис, чтобы получить соль пользователя для шифрования пароля пользователя для аутентификации через wsse API.

2) использовать классические веб-сервисы wsse со сгенерированным токеном из зашифрованного пароля, следующего за wsse

теперь, когда у вас есть зашифрованный пароль, вы можете просто пройти аутентификацию в сервисе wsse.

Самое главное, вам не нужно вводить пароль пользователя в открытом виде.

person Charles-Antoine Fournel    schedule 03.12.2015
comment
Привет, Шарль-Антуан, было бы неплохо, если бы ты опубликовал код. На мой взгляд, лучшим способом было бы изменить объект токена WSSE, добавив в него некоторый FB-токен, затем в функции проверки использовать API Facebook, чтобы проверить, действителен ли токен, а затем вернуть пользователя, связанного с адресом в токене. - person Bil5; 04.12.2015