Skip to content

Commit 0edb18d

Browse files
committed
update
0 parents  commit 0edb18d

File tree

4 files changed

+78
-0
lines changed

4 files changed

+78
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
composer.lock
2+
vendor

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## Larabase - firebase with Laravel
2+
3+
https://firebase-php.readthedocs.io/en/stable/setup.html

composer.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "chatbox-inc/laravel-firebase",
3+
"authors": [
4+
{
5+
"name": "mikakane",
6+
"email": "t.goto@chatbox-inc.com"
7+
}
8+
],
9+
"autoload": {
10+
"psr-4": {
11+
"Chatbox\\Larabase\\": "./src/"
12+
}
13+
},
14+
"require": {
15+
"kreait/firebase-php": "^4.19"
16+
}
17+
}

src/FirebaseServiceProvider.php

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<?php
2+
namespace Chatbox\Larabase;
3+
use Illuminate\Auth\AuthenticationException;
4+
use Illuminate\Http\Request;
5+
use Illuminate\Support\ServiceProvider;
6+
use Kreait\Firebase;
7+
use Kreait\Firebase\Factory;
8+
use Kreait\Firebase\ServiceAccount;
9+
10+
/**
11+
* Created by PhpStorm.
12+
* User: mkkn
13+
* Date: 2018/12/19
14+
* Time: 0:09
15+
*/
16+
17+
class FirebaseServiceProvider extends ServiceProvider
18+
{
19+
public function boot(){
20+
config()->set("auth.guards.firebase_idtoken",[
21+
'driver' => 'firebase_idtoken',
22+
]);
23+
}
24+
25+
public function register()
26+
{
27+
app()->singleton(Firebase::class,function(){
28+
$serviceAccount = ServiceAccount::fromArray(config("services.firebase",[]));
29+
$firebase = (new Factory())
30+
->withServiceAccount($serviceAccount)
31+
->create();
32+
return $firebase;
33+
});
34+
35+
app()->alias(Firebase::class,"firebase");
36+
37+
app('auth')->viaRequest('firebase_idtoken', function (Request $request) {
38+
/** @var Firebase $firebase */
39+
$firebase = app(Firebase::class);
40+
if ($token = $request->bearerToken()) {
41+
try {
42+
$verifiedIdToken = $firebase->getAuth()->verifyIdToken($token);
43+
$uid = $verifiedIdToken->getClaim('sub');
44+
return $firebase->getAuth()->getUser($uid);
45+
} catch (\Firebase\Auth\Token\Exception\InvalidToken $e) {
46+
throw new AuthenticationException();
47+
}
48+
49+
return $this->user->findByToken($token);
50+
}
51+
});
52+
53+
54+
}
55+
56+
}

0 commit comments

Comments
 (0)