Не могу войти после изменения шифрования пароля в Laravel - PullRequest
0 голосов
/ 18 июня 2020

Я хочу изменить шифрование пароля с bcrypt на encrypt, хотя пароль обновлен успешно, но я не могу войти в систему с новым паролем.

public function updatePassword(Request $request)
{
    $user = User::find($request->id);
    $user->password = encrypt($request->newPassword);
    $user->save();
}

Ответы [ 3 ]

0 голосов
/ 18 июня 2020

Как вы упомянули, вы хотите сохранить пароль пользователя, который вы можете показать его пароль, я рекомендую вам взглянуть здесь , потому что вам не нужно знать пароль пользователя в случае, если по соображениям безопасности

Но вы могли бы сделать User Auth, используя шифрование, которое вам нужно, чтобы сравнить input password и зашифровать его, а затем сравнить с password из database

в вашей функции входа в систему

function login(){
    $password = request('password'); 
    $email = request('email');
    $user = User::where('emai',$email)->first();
    if(encrypt($password) === $user->password){
        Auth::login($user); //for user auth session
        //login success
    }else{
        //failed to login
    }
}
0 голосов
/ 18 июня 2020

Используйте Hash:make($request->newPassword)

Use Illuminate\Support\Facades\Hash;

public function updatePassword(Request $request)
{
    $user = User::find($request->id);
    $user->password = Hash:make($request->newPassword);
    $user->save();
}
0 голосов
/ 18 июня 2020

Попробуйте:

/**
 * Handle a login request to the application.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\Response|\Illuminate\Http\JsonResponse
 *
 * @throws \Illuminate\Validation\ValidationException
 */
public function login(Request $request)
{
    $decrypted = $request->input('password'); 
    $user      = User::where('email', $request->input('email'))->first();

    if ($user) {
        if (Crypt::decryptString($user->password) === $decrypted) {
            Auth::login($user);

            return $this->sendLoginResponse($request);
        }
    }

    return $this->sendFailedLoginResponse($request);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...