我想使用哈希类来哈希我的密码 因为我希望在我的政策中使用slat密码 我有这样的控制器:
public function postLogin(Request $request)
{
$rules = array(
'username' => 'required',
'password' => 'required|min:8'
);
$validator = Validator::make($request->all(), $rules);
if ($validator->fails()) {
return redirect()->back()->withErrors($validator)
->withInput();
} else {
$user=User::where('username',$request['username'])->where('group_id',1)->get()->toArray();
$password=new PasswordController;
$request['password'] = $password->create_password_str($request['username'],$request['password']);
if(isset($user[0]['password'])&&Hash::check($request['password'], $user[0]['password'])){
return redirect('/dashboard');
} else {
return view('auth.login')->with('flag',5);
}
}
}
我在登录后使用用户名
{{Auth::user()->username}}
告诉我错误
尝试获取非对象的属性
我在重定向之前添加此代码但不起作用。
Auth::login($request['username']);
答案 0 :(得分:1)
因为你没有使用laravel builtin函数所以它没有将用户存储在SESSION
中,并且当你试图获取实际上不存在的用户数据时它会引发错误。以下是如何使用laravel auth尝试功能进行身份验证
if( Auth::attempt(['username' => $username, 'password' => $password]))
{
//redirect to dashboard
} else
{
//invalid credentials
}
注意:即使您不需要将密码转换为哈希值。 laravel非常聪明,可以将其转换为哈希值。
更新:如果您想为项目使用自定义盐,可以checkout this link。