Skip to content

Commit b313409

Browse files
committed
✨ ♻️ added client validation and refactor authcontroller
1 parent 5a00894 commit b313409

File tree

13 files changed

+8363
-1312
lines changed

13 files changed

+8363
-1312
lines changed

app/Http/Controllers/API/V1/Auth/AuthController.php

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -19,51 +19,8 @@ class AuthController extends Controller
1919
public function __construct(User $user)
2020
{
2121
$this->user = $user;
22-
$this->middleware('auth:api', ['except' => ['login', 'register']]);
2322
}
2423

25-
/**
26-
* Get a JWT token via given credentials.
27-
*
28-
* @param \Illuminate\Http\Request $request
29-
*
30-
* @return \Illuminate\Http\JsonResponse
31-
*/
32-
public function login(Request $request)
33-
{
34-
$credentials = $request->only('email', 'password');
35-
36-
if ($token = $this->guard()->attempt($credentials)) {
37-
return $this->respondWithToken($token);
38-
}
39-
40-
return response()->json(['error' => 'Unauthorized'], 401);
41-
}
42-
43-
/**
44-
* Get a JWT token via given credentials.
45-
*
46-
* @param \Illuminate\Http\Request $request
47-
*
48-
* @return \Illuminate\Http\JsonResponse
49-
*/
50-
public function register(Request $request)
51-
{
52-
$user = $this->user->fill($request->all());
53-
$user->password = bcrypt($request->get('password'));
54-
55-
try {
56-
$user->save();
57-
58-
$credentials = $request->only('email', 'password');
59-
} catch (JWTException $e) {
60-
return response()
61-
->json(['error' => 'could_not_create_token'], 500);
62-
}
63-
if ($token = $this->guard()->attempt($credentials)) {
64-
return $this->respondWithToken($token);
65-
}
66-
}
6724

6825
/**
6926
* Get the authenticated User
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\API\V1\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Foundation\Auth\AuthenticatesUsers;
7+
use Illuminate\Http\Request;
8+
9+
class LoginController extends Controller
10+
{
11+
/*
12+
|--------------------------------------------------------------------------
13+
| Login Controller
14+
|--------------------------------------------------------------------------
15+
|
16+
| This controller handles authenticating users for the application and
17+
| redirecting them to your home screen. The controller uses a trait
18+
| to conveniently provide its functionality to your applications.
19+
|
20+
*/
21+
22+
use AuthenticatesUsers;
23+
24+
/**
25+
* Create a new controller instance.
26+
*
27+
* @return void
28+
*/
29+
public function __construct()
30+
{
31+
$this->middleware('guest')->except('logout');
32+
}
33+
34+
/**
35+
* Attempt to log the user into the application.
36+
*
37+
* @param \Illuminate\Http\Request $request
38+
* @return bool
39+
*/
40+
protected function attemptLogin(Request $request)
41+
{
42+
$token = $this->guard()->attempt($this->credentials($request));
43+
44+
if ($token) {
45+
$this->guard()->setToken($token);
46+
47+
return true;
48+
}
49+
50+
return false;
51+
}
52+
53+
/**
54+
* Send the response after the user was authenticated.
55+
*
56+
* @param \Illuminate\Http\Request $request
57+
* @return \Illuminate\Http\Response
58+
*/
59+
protected function sendLoginResponse(Request $request)
60+
{
61+
$this->clearLoginAttempts($request);
62+
63+
$token = (string) $this->guard()->getToken();
64+
$expiration = $this->guard()->getPayload()->get('exp');
65+
66+
return [
67+
'token' => $token,
68+
'token_type' => 'bearer',
69+
'expires_in' => $expiration - time(),
70+
];
71+
}
72+
73+
/**
74+
* Log the user out of the application.
75+
*
76+
* @param \Illuminate\Http\Request $request
77+
* @return \Illuminate\Http\Response
78+
*/
79+
public function logout(Request $request)
80+
{
81+
$this->guard()->logout();
82+
}
83+
}

app/Http/Controllers/Auth/RegisterController.php renamed to app/Http/Controllers/API/V1/Auth/RegisterController.php

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace App\Http\Controllers\Auth;
3+
namespace App\Http\Controllers\API\V1\Auth;
44

55
use App\User;
66
use App\Http\Controllers\Controller;
@@ -22,13 +22,6 @@ class RegisterController extends Controller
2222

2323
use RegistersUsers;
2424

25-
/**
26-
* Where to redirect users after registration.
27-
*
28-
* @var string
29-
*/
30-
protected $redirectTo = '/home';
31-
3225
/**
3326
* Create a new controller instance.
3427
*
@@ -39,6 +32,18 @@ public function __construct()
3932
$this->middleware('guest');
4033
}
4134

35+
/**
36+
* The user has been registered.
37+
*
38+
* @param \Illuminate\Http\Request $request
39+
* @param mixed $user
40+
* @return mixed
41+
*/
42+
protected function registered(Request $request, $user)
43+
{
44+
return $user;
45+
}
46+
4247
/**
4348
* Get a validator for an incoming registration request.
4449
*

app/Http/Controllers/Auth/LoginController.php

Lines changed: 0 additions & 39 deletions
This file was deleted.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
},
2525
"dependencies": {
2626
"js-cookie": "^2.2.0",
27+
"vee-validate": "^2.0.0-rc.27",
2728
"vue": "^2.5.7",
2829
"vue-router": "^3.0.1",
2930
"vuetify": "^0.17.4",

0 commit comments

Comments
 (0)