我使用带有Laravel的Satellizer进行身份验证,我在我的数据库上有一个名为password_resets的表,其中包含以下字段:id,email,token,我能够提交重置链接并将令牌添加到此表中,但是当它出现时来更改它返回无效令牌的密码。
只是你知道,我不太确定,我甚至不相信,只有当password_resets表上的行数超过30-40时才会出现问题,例如,如果我删除所有记录它工作得很好......很奇怪!
我的后端代码如下所示:
public function postReset(Request $request)
{
$this->validate($request, [
'token' => 'required',
'email' => 'required|email',
'password' => 'required|confirmed',
]);
$credentials = $request->only(
'email', 'password', 'password_confirmation', 'token'
);
$response = $this->passwords->reset($credentials, function ($user, $password) {
$user->password = bcrypt($password);
$user->save();
$this->auth->login($user);
});
switch ($response) {
case PasswordBroker::PASSWORD_RESET:
return Response::json(array('success' => true));
default:
return Response::json(array('success' => false, 'message' => $response));
}
}
所以它总是进入默认的stm,并带有无效令牌的消息。