Passed
Pull Request — master (#6)
by
unknown
05:06
created

AuthServiceProvider   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 14
c 1
b 0
f 0
dl 0
loc 37
rs 10
wmc 5

2 Methods

Rating   Name   Duplication   Size   Complexity  
A register() 0 2 1
A boot() 0 25 4
1
<?php
2
3
namespace App\Providers;
4
5
use App\Models\User;
6
use App\Services\UserService;
7
use Exception;
8
use Illuminate\Support\ServiceProvider;
9
use IonGhitun\JwtToken\Jwt;
10
11
/**
12
 * Class AuthServiceProvider
13
 *
14
 * @package App\Providers
15
 */
16
class AuthServiceProvider extends ServiceProvider
17
{
18
    /**
19
     * Register any application services.
20
     */
21
    public function register()
22
    {
23
    }
24
25
    /**
26
     * Boot the authentication services for the application.
27
     */
28
    public function boot()
29
    {
30
        $this->app['auth']->viaRequest('api', function ($request) {
31
            if ($request->header('Authorization')) {
32
                $requestToken = explode(' ', $request->header('Authorization'));
33
34
                if (isset($requestToken[1])) {
35
                    try {
36
                        $userPayload = Jwt::validateToken($requestToken[1]);
37
38
                        $userBuilder = UserService::getUserBuilderForLogin();
39
40
                        /** @var User|null $user */
41
                        $user = $userBuilder->where('id', $userPayload['id'])->first();
42
43
                        return $user;
44
                    } catch (Exception $e) {
45
                        return null;
46
                    }
47
                }
48
49
                return null;
50
            }
51
52
            return null;
53
        });
54
    }
55
}
56