php - 如何将 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 中做错了
解决方案
调试我的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'),
现在一切正常。
推荐阅读
- python - 如何在 Pytorch 中为我的模型找到混淆矩阵和绘图
- r - 多个滚动分位数的高效计算
- linux - Kubernetes 中是否有任何选项可以在特定的 cgroup 目录中运行 pod?
- stream - 在终止操作中使用流 API 时出现错误
- c# - 您可以从 C# 控制台复制彩色文本吗?
- c# - 在 C# 中反序列化复杂对象
- powershell - 用于跳转到下一个文件夹的 Powershell 命令
- java - 没有可用的“org.springframework.jms.core.JmsTemplate”类型的合格 bean
- javascript - 单击按钮更改背景
- reactjs - 如何以编程方式打开标记集群