首页 > 解决方案 > 如何将 Firebase 身份验证添加到 laravel api 路由

问题描述

我是 laravel 的新手。我正在对 web 路由使用 laravel 默认身份验证,但我想使用 firebase 令牌对 api 路由进行身份验证。

我有一个用于身份验证的包,但我不知道如何正确使用它 https://github.com/csrui/laravel-firebase-auth

我已经添加了这些

AuthserviceProvider.php

public function boot()
{
    $this->app['auth']->viaRequest('firebase', function ($request) {
        return app(\csrui\LaravelFirebaseAuth\Guard::class)->user($request);
    });

}

config/app.php(提供者数组)

csrui\LaravelFirebaseAuth\FirebaseAuthServiceProvider::class,

.env

FIREBASE_PROJECT_ID=myprojectName //write your project id here

配置/auth.php

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'firebase',
        'provider' => 'firebase',
    ],
],
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],

    'firebase' => [
        'driver' => 'firebase',
        'model' => \csrui\LaravelFirebaseAuth\User::class,
    ],
],

当我使用 firebase 令牌作为身份验证承载发出 api 请求时。它不起作用。我觉得我在 config/auth.php 中做错了

标签: phplaravelfirebasefirebase-authentication

解决方案


调试我的api之后。我知道它可以工作,但 ssl 有错误

cURL 错误 60:SSL 证书问题:无法获取本地颁发者证书(参见http://curl.haxx.se/libcurl/c/libcurl-errors.html

我通过从https://curl.haxx.se/ca/cacert.pem下载“cacert.pem” 并复制到项目库然后将这些行添加到“\vendor\kreait\firebase-tokens\src\HttpKeyStore. php"

        'base_uri' => '57a/vendor/guzzlehttp/guzzle/src',
        'verify' => base_path('cacert.pem'),

现在一切正常。


推荐阅读