我有简单的注册码:
$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
。
我该怎么办?
答案 0 :(得分:0)
您无需加密/解密密码,Laravel自行完成。您只需要传递普通密码即可。看下面
$post = $request->all();
if (\Auth::attempt(['email' => $post['email'], 'password' => '1234dfgG')]))
return 'loginSuccess';
return 'loginFailed';
尝试时,Laravel将应用自己的bcrypt
方法进行加密并匹配密码
答案 1 :(得分:0)
这是一个应该工作的例子。
创建用户数据时使用Hash :: make()函数创建用户密码
哈希::使( '密码');
使用以下代码登录。
$post = $request->all();
if (\Auth::attempt(['email' => $post['email'], 'password'=>$post['password']]))
return 'loginSuccess';
return 'loginFailed';