PHP code example of sdwru / laravel-firebase-auth-plus
1. Go to this page and download the library: Download sdwru/laravel-firebase-auth-plus library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
sdwru / laravel-firebase-auth-plus example snippets
public function boot()
{
$this->registerPolicies();
$this->app['auth']->viaRequest('firebase', function ($request) {
return app(\sdwru\LaravelFirebaseAuth\Guard::class)->user($request);
});
}
namespace App\Http\Controllers\API;
use Illuminate\Http\Request;
use Illuminate\Contracts\Auth\Guard;
class UserController extends Controller
{
public function foo(Request $request, Guard $guard)
{
// Retrieve Firebase uid from id token via request
$user = $request->user();
$uid = $user->getAuthIdentifier();
// Or, do the same thing using Laravel auth guard instead
$user = $guard->user();
$uid = $user->getAuthIdentifier();
// Do something with the request for this user
}
}
use Illuminate\Support\Facades\Auth;
class SomeClass
{
public function bar()
{
//Check if logged in and retrieve user object and uid using Laravel Auth Facade
$isLoggedIn = Auth::guard('api')->check();
$userObject = Auth::guard('api')->user();
$uid = Auth::guard('api')->id();
//Alternatively, use Laravel auth() helper
$isLoggedIn = auth('api')->check();
$userObject = auth('api')->user();
$uid = auth('api')->id();
}
}
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use \Kreait\Firebase\Auth;
class UserController extends Controller
{
public $auth;
public function __construct(Auth $auth)
{
$this->auth = $auth;
}
public function index(Request $request)
{
$users = $this->auth->listUsers($defaultMaxResults = 1000, $defaultBatchSize = 1000);
foreach ($users as $k => $v) {
$response[$k] = $v;
}
echo json_encode($response);
}
public function update(Request $request, $uid)
{
$this->validate($request, [
'role' => 'present|string|max:20',
]);
$customAttributes = [
'role' => $request->role,
];
$updatedUser = $this->auth->setCustomUserAttributes($uid, $customAttributes);
return $this->auth->getUser($uid);
}
}
// Allow any authenticated user
Route::middleware('auth:api')->apiResource('users', 'API\UserController');
// Only allow users with admin and foo roles
Route::middleware('auth:api', 'role:admin, foo')->apiResource('users', 'API\FooController');
// Allow users with admin role only
Route::middleware('auth:api', 'role:admin')->apiResource('users', 'API\AdminController');