Skip to content
This repository was archived by the owner on Nov 26, 2024. It is now read-only.

Commit a970ab2

Browse files
committed
Added forgot password API endpoint
1 parent bd443bc commit a970ab2

File tree

4 files changed

+56
-19
lines changed

4 files changed

+56
-19
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Api\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
7+
use Illuminate\Http\Request;
8+
use Illuminate\Support\Facades\Password;
9+
10+
class ForgotPasswordController extends Controller
11+
{
12+
use SendsPasswordResetEmails;
13+
14+
/**
15+
* Create a new controller instance.
16+
*/
17+
public function __construct()
18+
{
19+
$this->middleware('guest');
20+
}
21+
22+
public function __invoke(Request $request)
23+
{
24+
$this->validateEmail($request);
25+
26+
// We will send the password reset link to this user. Once we have attempted
27+
// to send the link, we will examine the response then see the message we
28+
// need to show to the user. Finally, we'll send out a proper response.
29+
$response = $this->broker()->sendResetLink(
30+
$request->only('email')
31+
);
32+
33+
return Password::RESET_LINK_SENT == $response
34+
? response()->api([], 'Reset link sent to your email.')
35+
: response()->api([], 'Unable to send reset link');
36+
}
37+
}

app/Http/Controllers/Api/Auth/LogoutController.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88

99
class LogoutController extends Controller
1010
{
11-
public function __invoke(Request $request)
12-
{
13-
JWTAuth::invalidate(JWTAuth::getToken());
11+
public function __invoke(Request $request)
12+
{
13+
JWTAuth::invalidate(JWTAuth::getToken());
1414

15-
return response()->api([], 'You have sucessfully logout.');
16-
}
15+
return response()->api([], 'You have sucessfully logout.');
16+
}
1717
}

app/Http/Controllers/Api/User/ProfileController.php

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
namespace App\Http\Controllers\Api\User;
44

5-
use Illuminate\Http\Request;
65
use App\Http\Controllers\Controller;
6+
use Illuminate\Http\Request;
77

88
class ProfileController extends Controller
99
{
@@ -14,18 +14,17 @@ class ProfileController extends Controller
1414
*/
1515
public function index()
1616
{
17-
//
1817
}
1918

2019
/**
2120
* Store a newly created resource in storage.
2221
*
23-
* @param \Illuminate\Http\Request $request
22+
* @param \Illuminate\Http\Request $request
23+
*
2424
* @return \Illuminate\Http\Response
2525
*/
2626
public function store(Request $request)
2727
{
28-
//
2928
}
3029

3130
/**
@@ -41,23 +40,23 @@ public function show()
4140
/**
4241
* Update the specified resource in storage.
4342
*
44-
* @param \Illuminate\Http\Request $request
45-
* @param int $id
43+
* @param \Illuminate\Http\Request $request
44+
* @param int $id
45+
*
4646
* @return \Illuminate\Http\Response
4747
*/
4848
public function update(Request $request, $id)
4949
{
50-
//
5150
}
5251

5352
/**
5453
* Remove the specified resource from storage.
5554
*
56-
* @param int $id
55+
* @param int $id
56+
*
5757
* @return \Illuminate\Http\Response
5858
*/
5959
public function destroy($id)
6060
{
61-
//
6261
}
6362
}

routes/api.php

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,19 @@
1919
Route::post('login', 'LoginController')->name('login');
2020
Route::post('logout', 'LogoutController')->name('logout');
2121
Route::post('register', 'RegisterController')->name('register');
22+
Route::post('forgot/password', 'ForgotPasswordController')->name('forgot.password');
2223
});
2324

2425
Route::group([
25-
'namespace' => 'User',
26-
'prefix' => 'user',
27-
'as' => 'user.',
28-
'middleware' => ['jwt.auth']
26+
'namespace' => 'User',
27+
'prefix' => 'user',
28+
'as' => 'user.',
29+
'middleware' => ['jwt.auth'],
2930
], function () {
3031
Route::get('profile', 'ProfileController@show')->name('profile.show');
3132
});
3233

33-
/**
34+
/*
3435
* @todo protect routes, allow for self-consume API
3536
*/
3637
Route::group([

0 commit comments

Comments
 (0)