Как я могу расшифровать пароль для входа в laravel? - PullRequest
0 голосов
/ 22 мая 2019

При смене пароля я использую эту функцию

public function passwordChange(Request $request, $userId)
    {
        $user = User::find($userId);
        $user->password = Crypt::encrypt(Input::get('password'));
        $user->save();
        return redirect('my-profile');
    }

Поэтому в моей базе данных mongoDb пароль вставляется в зашифрованном виде, поэтому, когда мне нужно войти в систему в то время, как я могу сравнить свой пароль спароль базы данных

 public function authenticate(Request $request)
    {

        $rules = array(
            'company_email' => 'required|email|exists:users,company_email',
            'password' => 'required|string|max:20|min:4',
        );

        $validator = Validator::make(Input::all(), $rules);
        if ($validator->fails()) 
        {
            return view('pages.login')->with('v_errors', $validator->errors()->messages());
        } 
        else 
        {
            //get email and query
            $authenticateMe = $request->only('company_email', 'password');
            $user = User::where($authenticateMe)->first();

            if (empty($user)) 
            {
                return view('pages.login')->with('not_exists', 'true');
            }
            //session set
            // Session::put('key', $user->username, $user->file);
            Session::put('key', ['username' => $user->username, 'email' => $user->company_email, 'userId' => $user->id, 'profilePicture' => $user->file]);
            return redirect('my-profile');
        }
    }

Я не использую php artisan make: auth кто-нибудь, пожалуйста, помогите ??

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Просто вы не можете расшифровать зашифрованный пароль, но вы можете проверить учетные данные пользователя, добавив массив адресов электронной почты и пароля пользователя в функцию Auth :: try (). Вот ссылка на описание: https://laravel.com/docs/5.8/authentication#authenticating-users?

Вот ваша функция, использующая Auth :: попытки ():

public function authenticate(Request $request)
{

    $rules = array(
        'company_email' => 'required|email|exists:users,company_email',
        'password' => 'required|string|max:20|min:4',
    );

    $validator = Validator::make(Input::all(), $rules);
    if ($validator->fails()) 
    {
        return view('pages.login')->with('v_errors', $validator->errors()->messages());
    } 
    else 
    {
        //get email and query
        $authenticateMe = $request->only('company_email', 'password');

        if (Auth::attempt($authenticateMe)) {
            $user = User::find(Auth::user()->id);

            //session set
            // Session::put('key', $user->username, $user->file);
            Session::put('key', ['username' => $user->username, 'email' => $user->company_email, 'userId' => $user->id, 'profilePicture' => $user->file]);
            return redirect('my-profile');    
        }else{
            return view('pages.login')->with('not_exists', 'true');

        }
    }
}

И не забудьте добавить use Auth; в контроллер функций

0 голосов
/ 22 мая 2019

Вместо шифрования пароля используйте хеширование. Laravel имеет собственную документацию о том, как это использовать: https://laravel.com/docs/5.8/hashing

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...