-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathServiceProvider.php
71 lines (61 loc) · 1.76 KB
/
ServiceProvider.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
namespace Autumn\JWTAuth;
use Tymon\JWTAuth\Middleware\RefreshToken;
use Tymon\JWTAuth\Middleware\GetUserFromToken;
use Autumn\JWTAuth\Commands\JWTGenerateCommand;
use Illuminate\Support\ServiceProvider as IlluminateServiceProvider;
class ServiceProvider extends IlluminateServiceProvider
{
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$this->registerMiddleware('jwt.auth', GetUserFromToken::class);
$this->registerMiddleware('jwt.refresh', RefreshToken::class);
$this->registerJWTCommand();
$this->registerRequestRebindHandler();
}
public function boot()
{
$this->publishes([
realpath(__DIR__.'/config/jwt.php') => config_path('jwt.php'),
]);
}
/**
* Helper method to quickly setup middleware.
*
* @param string $alias
* @param string $class
*/
protected function registerMiddleware($alias, $class)
{
$router = $this->app['router'];
$method = method_exists($router, 'aliasMiddleware') ? 'aliasMiddleware' : 'middleware';
$router->$method($alias, $class);
}
/**
* Register the Artisan command.
*/
protected function registerJWTCommand()
{
$this->app->singleton('tymon.jwt.generate', function () {
return new JWTGenerateCommand();
});
}
/**
* Register a resolver for the authenticated user.
*
* @return void
*/
protected function registerRequestRebindHandler()
{
$this->app->rebinding('request', function ($app, $request) {
$request->setUserResolver(function () use ($app) {
return $app['user.auth']->getUser();
});
});
}
}