Skip to content

Commit

Permalink
jwt auth added
Browse files Browse the repository at this point in the history
  • Loading branch information
appkr committed Sep 22, 2016
1 parent b844c23 commit 6276902
Show file tree
Hide file tree
Showing 15 changed files with 685 additions and 28 deletions.
15 changes: 8 additions & 7 deletions .env.example
@@ -1,15 +1,16 @@
APP_ENV=local
APP_KEY=
APP_KEY=base64:PrtpUzSN0x4r7L7LLQDLSMxFzTk0vnvnIFqNezDclLI=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
DB_CONNECTION=sqlite
# DB_CONNECTION=mysql
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=homestead
# DB_USERNAME=homestead
# DB_PASSWORD=secret

BROADCAST_DRIVER=log
CACHE_DRIVER=file
Expand Down
24 changes: 24 additions & 0 deletions app/Http/Controllers/TokensController.php
@@ -0,0 +1,24 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

class TokensController extends Controller
{
public function store(Request $request)
{
$token = jwt()->attempt(
$request->only('email', 'password')
);

return response()->json(
compact('token'),
201,
[],
JSON_PRETTY_PRINT
);
}
}
2 changes: 2 additions & 0 deletions app/Http/Kernel.php
Expand Up @@ -52,5 +52,7 @@ class Kernel extends HttpKernel
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'jwt.auth' => \Tymon\JWTAuth\Middleware\GetUserFromToken::class,
'jwt.refresh' => \App\Http\Middleware\RefreshToken::class,
];
}
46 changes: 46 additions & 0 deletions app/Http/Middleware/RefreshToken.php
@@ -0,0 +1,46 @@
<?php

namespace App\Http\Middleware;

use Closure;
use Tymon\JWTAuth\Exceptions\JWTException;
use Tymon\JWTAuth\Exceptions\TokenExpiredException;

class RefreshToken extends \Tymon\JWTAuth\Middleware\BaseMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
try {

$newToken = $this->auth->setRequest($request)->parseToken()->refresh();
} catch (TokenExpiredException $e) {
return response()->json(
['message' => 'refresh_ttl_finished'],
$e->getStatusCode(),
[],
JSON_PRETTY_PRINT
);
} catch (JWTException $e) {
return response()->json(
['message' => 'invalid_token'],
$e->getStatusCode(),
[],
JSON_PRETTY_PRINT
);
}

return response()->json(
['token' => $newToken],
201,
[],
JSON_PRETTY_PRINT
);
}
}
5 changes: 5 additions & 0 deletions app/helpers.php
@@ -0,0 +1,5 @@
<?php

function jwt() {
return app('tymon.jwt.auth');
}
6 changes: 5 additions & 1 deletion composer.json
Expand Up @@ -6,7 +6,8 @@
"type": "project",
"require": {
"php": ">=5.6.4",
"laravel/framework": "5.3.*"
"laravel/framework": "5.3.*",
"tymon/jwt-auth": "^0.5.9"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
Expand All @@ -26,6 +27,9 @@
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
],
"files": [
"app/helpers.php"
]
},
"scripts": {
Expand Down
215 changes: 213 additions & 2 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion config/app.php
Expand Up @@ -167,7 +167,7 @@
* Package Service Providers...
*/

//
Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class,

/*
* Application Service Providers...
Expand Down Expand Up @@ -226,6 +226,8 @@
'Validator' => Illuminate\Support\Facades\Validator::class,
'View' => Illuminate\Support\Facades\View::class,

'JWTAuth' => \Tymon\JWTAuth\Facades\JWTAuth::class,

],

];

0 comments on commit 6276902

Please sign in to comment.