securesocial (2.1.X): как сохранить имя пользователя/пароль в базе данных?

Я хотел бы сохранить информацию о пользователе в базе данных, такую ​​как имя пользователя, адрес электронной почты, пароль (или даже хеш-значение, если я не могу получить пароль). Затем я проверил пример приложения ниже, но там нет информации о пароле. Если нет пароля, то как его сохранить в базу данных? https://github.com/jaliss/securesocial/blob/2.1.x/samples/scala/demo/app/service/InMemoryUserService.scala


person Daniel Wu    schedule 09.07.2014    source источник
comment
SecureSocial выглядит как приложение OAuth. Вам нужно узнать, как работает OAuth; возможно, пароль обрабатывается в другом месте.   -  person Robert Harvey    schedule 09.07.2014
comment
Разве это не безопасно для входа в систему через Facebook/Google+/Twitter и т. д.? Вы не получаете пароль пользователя — идея состоит в том, что пользователи могут войти в систему со своей социальной учетной записью, не передавая к ней доступ.   -  person wingedsubmariner    schedule 09.07.2014


Ответы (1)


Наконец я обнаружил, что хешированный пароль хранится в Identity, мы могли бы перехватить его в функции save() при смене пароля или создании нового пользователя. Мы могли бы добавить логику для их хранения в базе данных. Кстати, для авторизации я использую адрес электронной почты/пароль, а не Facebook или Google OAuth.

def save(user: Identity): Identity = {
    // first see if there is a user with this Identity already.
    val pwd:String=user.passwordInfo.get.password
    val hasher:String=user.passwordInfo.get.hasher
    val salt:Option[String]=user.passwordInfo.get.salt
person Daniel Wu    schedule 09.07.2014