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

AuthServiceProvider::boot()   A

Complexity

Conditions 4
Paths 1

Size

Total Lines 25
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 4
eloc 13
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 25
rs 9.8333
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