How can I create API for forgot password and change password in laravel use passport?
**route : **
**Image of postman : **
** Parameter pass in api: **
Register route in api. php file. Route::post('password/email', 'ForgotPasswordController@forgot'); Now, sendResetLink function will send a reset password link with email and token in url.
First, we will need a pair of routes to handle allowing the user to request a password reset link via their email address. Second, we will need a pair of routes to handle actually resetting the password once the user visits the password reset link that is emailed to them and completes the password reset form.
api.php
Route::post('forgot-password', 'Api\AuthController@forgot_password');
Route::group(['middleware' => 'auth:api'], function () {
Route::post('change-password', 'Api\AuthController@change_password');
});
forgot password api
public function forgot_password(Request $request)
{
$input = $request->all();
$rules = array(
'email' => "required|email",
);
$validator = Validator::make($input, $rules);
if ($validator->fails()) {
$arr = array("status" => 400, "message" => $validator->errors()->first(), "data" => array());
} else {
try {
$response = Password::sendResetLink($request->only('email'), function (Message $message) {
$message->subject($this->getEmailSubject());
});
switch ($response) {
case Password::RESET_LINK_SENT:
return \Response::json(array("status" => 200, "message" => trans($response), "data" => array()));
case Password::INVALID_USER:
return \Response::json(array("status" => 400, "message" => trans($response), "data" => array()));
}
} catch (\Swift_TransportException $ex) {
$arr = array("status" => 400, "message" => $ex->getMessage(), "data" => []);
} catch (Exception $ex) {
$arr = array("status" => 400, "message" => $ex->getMessage(), "data" => []);
}
}
return \Response::json($arr);
}
change password api
public function change_password(Request $request)
{
$input = $request->all();
$userid = Auth::guard('api')->user()->id;
$rules = array(
'old_password' => 'required',
'new_password' => 'required|min:6',
'confirm_password' => 'required|same:new_password',
);
$validator = Validator::make($input, $rules);
if ($validator->fails()) {
$arr = array("status" => 400, "message" => $validator->errors()->first(), "data" => array());
} else {
try {
if ((Hash::check(request('old_password'), Auth::user()->password)) == false) {
$arr = array("status" => 400, "message" => "Check your old password.", "data" => array());
} else if ((Hash::check(request('new_password'), Auth::user()->password)) == true) {
$arr = array("status" => 400, "message" => "Please enter a password which is not similar then current password.", "data" => array());
} else {
User::where('id', $userid)->update(['password' => Hash::make($input['new_password'])]);
$arr = array("status" => 200, "message" => "Password updated successfully.", "data" => array());
}
} catch (\Exception $ex) {
if (isset($ex->errorInfo[2])) {
$msg = $ex->errorInfo[2];
} else {
$msg = $ex->getMessage();
}
$arr = array("status" => 400, "message" => $msg, "data" => array());
}
}
return \Response::json($arr);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With