authentication - 我该如何解决这个错误:这些凭据与我们的记录不匹配
问题描述
今天我想使用我的 laravel 项目,但是当我想登录时,突然在我的所有项目中都收到了这个错误
这些凭据与我们的记录不符。
我什么都没做,但突然间我的所有项目都向我显示了这个错误
我测试了一些方法,例如:bycript 和 Hasht,但它们对我不起作用
我的登录控制器
{
use AuthenticatesUsers;
protected $redirectTo = '/';
public function __construct()
{
$this->middleware('guest')->except('logout');
}
protected function credentials(Request $request)
{
return ['email'=>$request->{$this->username()},'password'=>$request->password,'verified'=>'1'];
}
public function redirectToProvider()
{
return Socialite::driver('google')->redirect();
}
/**
* Obtain the user information from GitHub.
*
* @return \Illuminate\Http\Response
*/
public function handleProviderCallback()
{
$google_user = Socialite::driver('google')->user();
$user=user::whereemail($google_user->getemail())->first();
if (!$user){
$user=user::create([
'name'=>$google_user->getname(),
'email'=>$google_user->getemail(),
'password'=>bcrypt($google_user->getId()),
]);
auth()->loginUsingId($user->id);
return redirect('/home');
}
}
}
特征 AuthenticatesUsers {
public function showLoginForm()
{
return view('auth.login');
}
public function login(Request $request)
{
$this->validateLogin($request);
if (method_exists($this, 'hasTooManyLoginAttempts') &&
$this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
if ($this->attemptLogin($request)) {
return $this->sendLoginResponse($request);
}
$this->incrementLoginAttempts($request);
return $this->sendFailedLoginResponse($request);
}
protected function validateLogin(Request $request)
{
$request->validate([
$this->username() => 'required|string',
'password' => 'required|string',
]);
}
protected function attemptLogin(Request $request)
{
return $this->guard()->attempt(
$this->credentials($request), $request->filled('remember')
);
}
protected function credentials(Request $request)
{
return $request->only($this->username(), 'password');
}
protected function sendLoginResponse(Request $request)
{
$request->session()->regenerate();
$this->clearLoginAttempts($request);
return $this->authenticated($request, $this->guard()->user())
?: redirect()->intended($this->redirectPath());
}
protected function authenticated(Request $request, $user)
{
//
}
protected function sendFailedLoginResponse(Request $request)
{
throw ValidationException::withMessages([
$this->username() => [trans('auth.failed')],
]);
}
public function username()
{
return 'email';
}
public function logout(Request $request)
{
$this->guard()->logout();
$request->session()->invalidate();
return $this->loggedOut($request) ?: redirect('/');
}
protected function loggedOut(Request $request)
{
//
}
protected function guard()
{
return Auth::guard();
}
}
解决方案
我在你的代码中发现了一些东西,可能你的代码是完美的,但你能检查一下吗
$google_user = Socialite::driver('google')->user();
$user=user::whereemail($google_user->getemail())->first();
if (!$user){
$user=user::create([
'name'=>$google_user->getname(),
'email'=>$google_user->getemail(),
'password'=>bcrypt($google_user->getId()),
]);
auth()->loginUsingId($user->id); // comment this line and try with this
Auth::login($user); // make sure you have import Auth
return redirect('/home');
}
推荐阅读
- c++ - 访问列表向量中的结构
- javascript - eval() 的 Javascript 替代方案
- spring-boot - 使用 Spring AMQP 进行 MockBean 测试和多个使用者\应用程序上下文
- php - 使用cakephp3,如何在路由中自定义方法和动作
- lisp - 在 ACL2 中添加倒数
- javascript - Django - 使用 Ajax 的 POST 方法错误“POST /......./ HTTP/1.1”405 0
- javascript - 如何获得平滑滚动(而不是锚点)?
- spring - 双向映射不拾取父级
- javascript - 按另一个数组对较大的 javascript 数组进行排序并将值移动到数组的顶部
- git - gh-pages d- build:部署脚本失败