@@ -12,41 +12,76 @@ class LoginController extends Controller
1212{
1313 use ThrottlesLogins;
1414
15+ /**
16+ * Issue a JWT token when valid login credentials are
17+ * presented.
18+ *
19+ * @param Request $request
20+ * @return \Illuminate\Http\JsonResponse
21+ */
1522 public function login (Request $ request )
1623 {
24+ // Determine if the user has too many failed login attempts.
1725 if ($ this ->hasTooManyLoginAttempts ($ request )) {
26+
27+ // Fire an event when a lockout occurs.
1828 $ this ->fireLockoutEvent ($ request );
1929
2030 return $ this ->sendLockoutResponse ($ request );
2131 }
2232
33+ // Grab credentials from the request.
2334 $ credentials = $ request ->only ('email ' , 'password ' );
2435
36+ // Attempt to verify the credentials and create a token for the user.
2537 if ($ token = Auth::guard ('api ' )->attempt ($ credentials )) {
38+
39+ // All good so return the json with token and user.
2640 return $ this ->sendLoginResponse ($ request , $ token );
2741 }
2842
43+ // Increments login attempts.
2944 $ this ->incrementLoginAttempts ($ request );
3045
3146 return $ this ->sendFailedLoginResponse ($ request );
3247 }
3348
49+ /**
50+ * Return the token and current user authenticated.
51+ *
52+ * @param Request $request
53+ * @param $token
54+ * @return \Illuminate\Http\JsonResponse
55+ */
3456 protected function sendLoginResponse (Request $ request , $ token )
3557 {
58+ // Clear the login locks for the given user credentials.
3659 $ this ->clearLoginAttempts ($ request );
3760
3861 $ user = Auth::guard ('api ' )->user ();
3962
4063 return response ()->json (compact ('token ' , 'user ' ));
4164 }
4265
66+ /**
67+ * Return error message after determining invalid credentials.
68+ *
69+ * @param \Illuminate\Http\Request $request
70+ * @return \Illuminate\Http\JsonResponse
71+ */
4372 protected function sendFailedLoginResponse (Request $ request )
4473 {
4574 $ message = Lang::get ('auth.failed ' );
4675
4776 return response ()->json (['messages ' => [$ message ]], 401 );
4877 }
4978
79+ /**
80+ * Redirect the user after determining they are locked out.
81+ *
82+ * @param \Illuminate\Http\Request $request
83+ * @return \Illuminate\Http\JsonResponse
84+ */
5085 public function sendLockoutResponse (Request $ request )
5186 {
5287 $ seconds = $ this ->limiter ()->availableIn (
0 commit comments