2013-12-17 4 views
1

В моем приложении есть представление, которое позволяет зарегистрированному пользователю вводить новый пароль. Как я могу использовать новый пароль? Использование родного Laravel Auth я бы простоlaravel 4 sentry 2 как сменить пароль и перефразировать

Hash::make($input['password']); 

это то же самое для Sentry 2? Если это так, после выполнения сброса и обновления таблицы пользователя, я получаю WrongPasswordException, поэтому я предполагаю, что хэш-методы разные. Если у Sentry есть собственный хеш-метод, я не могу его найти.

Обновление: Очевидно, что this method будет работать одинаково и автоматически сохранить запись пользователя, документы просто не указывают на это.

+0

Похоже, что существует мутатор в 'UserModel :: $ password', который автоматически хэширует пароль в соответствии с настройкой Hasher в конфигурации. – Goldentoa11

ответ

3

Обновите пользователя, используя методы Sentry, он автоматически присвоит пароль как Sentry::getUserProvider()->create();.

try 
    { 
     // Find the user using the user id 
     $user = Sentry::findUserById(1); 

     // Update the user details 
     $user->email = '[email protected]'; 
     $user->first_name = 'John'; 

     // Update the user 
     if ($user->save()) 
     { 
      // User information was updated 
     } 
     else 
     { 
      // User information was not updated 
     } 
    } 
    catch (Cartalyst\Sentry\Users\UserExistsException $e) 
    { 
     echo 'User with this login already exists.'; 
    } 
    catch (Cartalyst\Sentry\Users\UserNotFoundException $e) 
    { 
     echo 'User was not found.'; 
    } 
+0

Dang Я просто подумал об этом еще раз. Документы должны упоминать об этой логике. –

+0

@JaredEitnier Я упал так же, как вы, в документах Sentry этого не было: / –

Смежные вопросы