Je travaille actuellement sur forgot
API de mot de passe et reset
API de mot de passe dans Laravel 5.5. Actuellement, je n'ai aucune idée de comment valider le mot de passe après avoir cliqué sur le lien dans l'email et montrer le réinitialiser le mot de passe et confirmer le mot de passe. J'ai envoyé le jeton avec l'email.Valider jeton après la redirection de mot de passe oublié email lien
La chose est avant de demander un mot de passe et de confirmer le mot de passe que je dois d'abord vérifier le jeton si c'est un jeton valide de la table et sa date d'expiration. Quelqu'un peut-il me guider d'une certaine façon comment faire cela?
Voici mon mot de passe oublié.
public function forgotPasswordApi(Request $request){
$rawPostData = json_decode($request->getContent(), true);
if(isset($rawPostData['email'])) {
$user = UserModel::where('email',$rawPostData['email'])->first();
$token=TokenModel::where('user_id',$user->id)->first();
if($user){
if(!$token){
$token=new TokenModel;
$token->token=md5(uniqid().$token->id);
$token->token_code = TokenModel::$forgotPasswordToken;
$token->expire_date = date("F j, Y, H:i:s", strtotime('+24 hour'));
$token->user_id=$user->id;
$token->save();
}
Mail::raw($user, function ($message) use ($user){
$token=TokenModel::where('user_id',$user->id)->first();
$message->to($user['email'])
->subject('Forgot Password Subject')
->setBody('To reset password. Click on the following URL. '.url('/password/reset/?token=').$token->token);
});
}
$data['status'] = 'success';
$data['msg'] = $token;
}else{
$data['status']='fail';
$data['msg']='Missing required paramater';
}
return new JsonResponse($data);
}
Note: Mail avec le lien de réinitialisation a été envoyé avec succès, mais je n'ai pas idée de passer par un mot de passe de réinitialisation avec ce lien.
Email Exemple
To reset password. Click on the following URL.
http://127.0.0.1:8000/password/reset?token=fca709c8a8ef5ff61aa5bb73e475c602
Voici mon mot de passe de réinitialisation incomplète
public function resetPasswordApi(Request $request){
if(Input::has('token'))
{
$token_input = Input::get('token');
$token = DB::tables('tokens')
->where('token',$token_input)
->where('expire_date','>=',Carbon::now()->subHours(12))
->first();
}else{
dd('input value not found');
}
$rawPostData = json_decode($request->getContent(), true);
if($token)
{
if(isset($rawPostData['password'],$rawPostData['confirm_password']))
{
if($rawPostData['password'] === $rawPostData['confirm_password'])
{
$updatedUser = UserModel::where('id',$token->user_id)->first();
$updatedUser->password = bcrypt($rawPostData['password']);
$updatedUser->save();
$data['status'] = 'success';
}
else
{
$data['status']='fail';
$data['msg']='Password and Confirm Password Match failed.';
}
}
else
{
$data['status']='fail';
$data['msg']='Missing required paramater';
}
}
else
{
$data['status']='fail';
$data['msg']='Missing required paramater';
}
return new JsonResponse($data);
}
}
Y a-t-il une raison pour laquelle vous n'utilisez pas [l'authentification Laravel intégrée] (https://laravel.com/docs/5.5/authentication)? Laravel gère déjà tout cela. –