不接受来自 bcrypt 密码的登录
Not accepting login from bcrypt password
重置密码后我无法使用我的密码登录
public function resetPassword(Request $request){
$info = $request->all();
$validator = Validator::make($info, [
'id' => 'required',
'password' => 'required'
]);
if($validator->fails()){
return ['res'=>'0', 'data' => 'parameters error'];
}else{
$new_password = bcrypt(request("password"));
$user = User::find(request("id"));
$user -> password = $new_password;
$user -> pass_reset = 0;
$user-> save();
$passwordRecord = new Password_record;
$passwordRecord -> user_id = $user->id;
$passwordRecord -> password = $new_password;
$passwordRecord -> created_at = time();
$passwordRecord-> active_flag = 1;
$passwordRecord->save();
return ['res'=>'1', 'data' => $new_password];
}
}
此密码已成功保存在数据库中。
这是我在登录功能中提到的,
public function login(Request $request)
{
$credentials1 = $request->only('email', 'password');
$new_password = bcrypt($credentials1["password"]);
$credentials = ['username' => $credentials1["email"], 'password' => $new_password];
$user = User::where('username',$credentials["username"])->where('password',$new_password)->first();
}
bcrypt 总是随着时间的推移而改变,我找不到更好的方法来做到这一点!谁能告诉我我做错了什么?还是我需要另一种方法才能使此登录有效?
您需要使用Hash::make()
方法加密您的密码:
$new_password = Hash::make($credentials1["password"]);
You need to make it in this way
public function login(Request $request) {
if (Auth::attempt ( array ('username' => $request->get ( 'username' ),'password' =>$request->get ( 'password' ) ) )) {
return Auth::user();
OR
return Redirect::route('home');
} else {
Session::flash ( 'message', "Invalid Credentials , Please try again." );
return Redirect::back();
}
}
您可以只使用下面的代码和整个请求。
if ($this->attemptLogin($request)) {
return $this->sendLoginResponse($request);
}
重置密码后我无法使用我的密码登录
public function resetPassword(Request $request){
$info = $request->all();
$validator = Validator::make($info, [
'id' => 'required',
'password' => 'required'
]);
if($validator->fails()){
return ['res'=>'0', 'data' => 'parameters error'];
}else{
$new_password = bcrypt(request("password"));
$user = User::find(request("id"));
$user -> password = $new_password;
$user -> pass_reset = 0;
$user-> save();
$passwordRecord = new Password_record;
$passwordRecord -> user_id = $user->id;
$passwordRecord -> password = $new_password;
$passwordRecord -> created_at = time();
$passwordRecord-> active_flag = 1;
$passwordRecord->save();
return ['res'=>'1', 'data' => $new_password];
}
}
此密码已成功保存在数据库中。
这是我在登录功能中提到的,
public function login(Request $request)
{
$credentials1 = $request->only('email', 'password');
$new_password = bcrypt($credentials1["password"]);
$credentials = ['username' => $credentials1["email"], 'password' => $new_password];
$user = User::where('username',$credentials["username"])->where('password',$new_password)->first();
}
bcrypt 总是随着时间的推移而改变,我找不到更好的方法来做到这一点!谁能告诉我我做错了什么?还是我需要另一种方法才能使此登录有效?
您需要使用Hash::make()
方法加密您的密码:
$new_password = Hash::make($credentials1["password"]);
You need to make it in this way
public function login(Request $request) {
if (Auth::attempt ( array ('username' => $request->get ( 'username' ),'password' =>$request->get ( 'password' ) ) )) {
return Auth::user();
OR
return Redirect::route('home');
} else {
Session::flash ( 'message', "Invalid Credentials , Please try again." );
return Redirect::back();
}
}
您可以只使用下面的代码和整个请求。
if ($this->attemptLogin($request)) {
return $this->sendLoginResponse($request);
}