• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

RonasIT / laravel-empty-project / 12708151704

10 Jan 2025 10:54AM UTC coverage: 97.399%. Remained the same
12708151704

Pull #115

github

web-flow
Merge 0ee4a1741 into 4b3e9e972
Pull Request #115: #173: structure refactoring

337 of 346 relevant lines covered (97.4%)

10.88 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

100.0
/app/Http/Controllers/AuthController.php
1
<?php
2

3
namespace App\Http\Controllers;
4

5
use App\Http\Requests\Auth\ForgotPasswordRequest;
6
use App\Http\Requests\Auth\LoginRequest;
7
use App\Http\Requests\Auth\LogoutRequest;
8
use App\Http\Requests\Auth\RefreshTokenRequest;
9
use App\Http\Requests\Auth\RegisterUserRequest;
10
use App\Http\Requests\Auth\RestorePasswordRequest;
11
use App\Http\Resources\Auth\RefreshTokenResource;
12
use App\Http\Resources\Auth\SuccessLoginResource;
13
use App\Services\UserService;
14
use App\Traits\TokenTrait;
15
use Illuminate\Http\Response;
16
use Illuminate\Support\Facades\Password;
17
use PHPOpenSourceSaver\JWTAuth\Exceptions\JWTException;
18
use PHPOpenSourceSaver\JWTAuth\JWTAuth;
19
use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException;
20
use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException;
21

22
class AuthController extends Controller
23
{
24
    use TokenTrait;
25

26
    public function login(LoginRequest $request, UserService $service, JWTAuth $auth): SuccessLoginResource
27
    {
28
        $credentials = $request->only('email', 'password');
6✔
29
        $remember = $request->input('remember', false);
6✔
30

31
        $token = $auth->attempt($credentials);
6✔
32

33
        if ($token === false) {
6✔
34
            throw new UnauthorizedHttpException('jwt-auth');
1✔
35
        }
36

37
        $user = $service->first(['email' => $request->input('email')]);
5✔
38

39
        $tokenCookie = $this->makeAuthorizationTokenCookie($token, $remember);
5✔
40

41
        return SuccessLoginResource::make($token, $user, $tokenCookie);
5✔
42
    }
43

44
    public function register(RegisterUserRequest $request, UserService $service, JWTAuth $auth): SuccessLoginResource
45
    {
46
        $user = $service->create($request->onlyValidated());
3✔
47

48
        $credentials = $request->only('email', 'password');
3✔
49
        $remember = $request->input('remember', false);
3✔
50

51
        $token = $auth->attempt($credentials);
3✔
52
        $tokenCookie = $this->makeAuthorizationTokenCookie($token, $remember);
3✔
53

54
        return SuccessLoginResource::make($token, $user, $tokenCookie);
3✔
55
    }
56

57
    public function refreshToken(RefreshTokenRequest $request, JWTAuth $auth): RefreshTokenResource
58
    {
59
        $remember = $request->input('remember', false);
5✔
60

61
        try {
62
            $refreshedOldToken = $auth->parseToken()->refresh();
5✔
63
            $auth->setToken($refreshedOldToken);
4✔
64
            $auth->authenticate();
4✔
65

66
            $user = $auth->user();
4✔
67

68
            $auth->invalidate(true);
4✔
69
            $auth->unsetToken();
3✔
70

71
            $newToken = $auth->fromUser($user);
3✔
72
            $tokenCookie = $this->makeAuthorizationTokenCookie($newToken, $remember);
3✔
73

74
            return RefreshTokenResource::make($newToken, $tokenCookie);
3✔
75
        } catch (JWTException $e) {
2✔
76
            throw new UnauthorizedHttpException('jwt-auth', $e->getMessage(), $e, $e->getCode());
2✔
77
        }
78
    }
79

80
    public function logout(LogoutRequest $request): Response
81
    {
82
        $tokenCookie = $this->makeAuthorizationTokenExpiredCookie();
2✔
83

84
        return response('', Response::HTTP_NO_CONTENT)->withCookie($tokenCookie);
1✔
85
    }
86

87
    public function forgotPassword(ForgotPasswordRequest $request, UserService $service): Response
88
    {
89
        $status = $service->forgotPassword($request->input('email'));
2✔
90

91
        if ($status !== Password::RESET_LINK_SENT) {
2✔
92
            throw new UnprocessableEntityHttpException(__($status));
1✔
93
        }
94

95
        return response('', Response::HTTP_NO_CONTENT);
1✔
96
    }
97

98
    public function restorePassword(RestorePasswordRequest $request, UserService $service): Response
99
    {
100
        $status = $service->restorePassword($request->onlyValidated());
2✔
101

102
        if ($status !== Password::PASSWORD_RESET) {
2✔
103
            throw new UnprocessableEntityHttpException(__($status));
1✔
104
        }
105

106
        return response('', Response::HTTP_NO_CONTENT);
1✔
107
    }
108
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc