From d5a87072ffd792d417b9a5b3a09e2d125a4bf767 Mon Sep 17 00:00:00 2001 From: Michael Slowik Date: Fri, 22 Nov 2019 17:25:56 -0300 Subject: [PATCH 1/3] AddAccessTokenFromCookie middleware --- .../Middleware/AddAccessTokenFromCookie.php | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/Http/Middleware/AddAccessTokenFromCookie.php diff --git a/src/Http/Middleware/AddAccessTokenFromCookie.php b/src/Http/Middleware/AddAccessTokenFromCookie.php new file mode 100644 index 0000000..0ce7c72 --- /dev/null +++ b/src/Http/Middleware/AddAccessTokenFromCookie.php @@ -0,0 +1,28 @@ +bearerToken())) { + $tokenCookie = config('firebase.token_cookie', 'bearer_token'); + if ($request->hasCookie($tokenCookie)) { + $token = $request->cookie($tokenCookie); + $request->headers->add(['Authorization' => 'Bearer '.$token]); + } + } + + return $next($request); + } +} From f6cadeb3d28ab31092ce0aa4903e556864bdd4a3 Mon Sep 17 00:00:00 2001 From: Michael Slowik Date: Fri, 22 Nov 2019 17:38:39 -0300 Subject: [PATCH 2/3] Updated README --- README.md | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 83256b1..db85329 100644 --- a/README.md +++ b/README.md @@ -13,16 +13,22 @@ The driver contains a firebase guard that authenticates user by Firebase Authent composer require firevel/firebase-authentication ``` -2) Update config/auth.php with: +2) Update config/auth.php. + ``` 'guards' => [ - .... - 'api' => [ + 'web' => [ 'driver' => 'firebase', 'provider' => 'users', ], + + 'api' => [ + 'driver' => 'token', + 'provider' => 'users', + ], ], ``` + 3) Update your User model with `Firevel\FirebaseAuthentication\FirebaseAuthenticable` trait `$incrementing = false` and fillables. Eloquent example: @@ -37,7 +43,7 @@ use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { - use Notifiable; + use Notifiable, FirebaseAuthenticable; /** * Indicates if the IDs are auto-incrementing. @@ -101,6 +107,23 @@ $table->string('picture'); $table->timestamps(); ``` +## Web guard + +In order to use firebase authentication in web routes you must attach bearer token to each http request. + +You can also store bearer token in `bearer_token` cookie variable and add to your `Kernel.php`: +``` + protected $middlewareGroups = [ + 'web' => [ + ... + \Firevel\FirebaseAuthentication\Http\Middleware\AddAccessTokenFromCookie::class, + ... + ], + + ... + ]; +``` + ## Usage Attach to each API call regular bearer token provided by Firebase Authentication. From 772333a91e26cfcd792f9a10fba13c58891e4918 Mon Sep 17 00:00:00 2001 From: Michael Slowik Date: Fri, 22 Nov 2019 17:38:55 -0300 Subject: [PATCH 3/3] Apply fixes from StyleCI (#3) --- src/Http/Middleware/AddAccessTokenFromCookie.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Http/Middleware/AddAccessTokenFromCookie.php b/src/Http/Middleware/AddAccessTokenFromCookie.php index 0ce7c72..38458ca 100644 --- a/src/Http/Middleware/AddAccessTokenFromCookie.php +++ b/src/Http/Middleware/AddAccessTokenFromCookie.php @@ -9,8 +9,9 @@ class AddAccessTokenFromCookie /** * Store token from cookie in authorization header. * - * @param \Illuminate\Http\Request $request - * @param \Closure $next + * @param \Illuminate\Http\Request $request + * @param \Closure $next + * * @return mixed */ public function handle($request, Closure $next)