Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.2-登录不起作用_Php_Laravel_Login_Laravel 5_Laravel 5.2 - Fatal编程技术网

Php Laravel 5.2-登录不起作用

Php Laravel 5.2-登录不起作用,php,laravel,login,laravel-5,laravel-5.2,Php,Laravel,Login,Laravel 5,Laravel 5.2,我有简单的注册码: $data = [ 'email' => $post['email'], 'password' => Crypt::encrypt($post['password']), ]; $user = User::create($data); $mailer->sendEmailConfirmationTo($user); 这是我的routes.php: Route::group(['middleware' => ['web']], fu

我有简单的注册码:

$data = [
     'email' => $post['email'],
     'password' => Crypt::encrypt($post['password']),
];
$user = User::create($data);
$mailer->sendEmailConfirmationTo($user);
这是我的
routes.php

Route::group(['middleware' => ['web']], function () {
    Route::group(['prefix'=>'auth'], function(){
        Route::get('/', 'AuthController@index');
        Route::post('post', 'AuthController@postLogin');

        Route::group(['prefix'=>'register'], function() {
            Route::get('/', 'AuthController@register');
            Route::post('post', 'AuthController@postRegister');
            Route::get('confirm/{email}/{confirmation_key}', 'AuthController@confirm');
        });
    });
});
这是我的登录码:

$post = $request->all();

if (\Auth::attempt(['email' => $post['email'], 'password' => Crypt::encrypt($post['password'])]))
    return 'loginSuccess';
return 'loginFailed';
它总是返回“登录失败”,从不返回“登录成功”。
我能做什么呢?

你不需要加密/解密密码,Laravel自己做。你只需要传递普通密码。往下看

$post = $request->all();

if (\Auth::attempt(['email' => $post['email'], 'password' => '1234dfgG')]))
    return 'loginSuccess';
return 'loginFailed';

尝试时,Laravel将应用自己的
bcrypt
方法进行加密并匹配密码

这是一个可行的示例

  • 创建用户数据时,使用Hash::make()函数创建用户密码

    Hash::make('password')

  • 使用下面的代码登录

    $post=$request->all();
    如果(\Auth::尝试(['email'=>$post['email'],'password'=>$post['password']]))
    返回“登录成功”;
    返回“登录失败”


  • Auth::Attement的文档中说要使用密码作为参数,而不是加密/哈希密码……还有,为什么要使用Crypt来创建可以解密的密码,而不是哈希密码?正如Mark Baker指出的,纯文本密码会传递给Attement方法,因为它需要将它的哈希值与数据库中的哈希值进行比较。密码是散列的,不是加密的。