Laravel 5.2 - 登录无效

时间:2016-04-17 21:22:28

标签: 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']], 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';

始终返回loginFailed,永不返回loginSuccess。 我该怎么办?

2 个答案:

答案 0 :(得分:0)

您无需加密/解密密码,Laravel自行完成。您只需要传递普通密码即可。看下面

$post = $request->all();

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

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

答案 1 :(得分:0)

这是一个应该工作的例子。

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

    哈希::使( '密码');

  2. 使用以下代码登录。

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