php - Firebase 令牌:承载者是什么?
问题描述
我正在使用这个参考存储库来测试 Lumen 内的 firebase 令牌的身份验证: https ://github.com/alinnert/lumen-auth-reference
我在说明中无法理解这部分内容:
GET /secret
Header:
Authorization: "Bearer ...token..."
我正在使用 RESTClient (www.restclient.net) 通过 http 请求来刺激我的 Lumen 后端。在那里,我可以定义自定义标题,这可能是我需要在这里做的。所以我这样做了,我将名称输入字段设置为“授权”,它已经为我提供了自动完成功能,所以我想这是对的。然后我移动到属性值字段并输入
承载者...令牌...
现在,当我发送请求时,我得到以下响应:
UnexpectedValueException in JWT.php line 79: Wrong number of segments
in JWT.php line 79
at JWT::decode('Bearer...token...', 'pawifjopawiejfpoaiwejfpoji', array('HS256')) in AuthServiceProvider.php line 36
at AuthServiceProvider->App\Providers\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in RequestGuard.php line 54
at RequestGuard->user() in GuardHelpers.php line 49
at RequestGuard->check() in GuardHelpers.php line 59
at RequestGuard->guest() in Authenticate.php line 38
at Authenticate->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Laravel\Lumen\Routing\{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in RoutesRequests.php line 780
at Application->sendThroughPipeline(array('App\\Http\\Middleware\\Authenticate'), object(Closure)) in RoutesRequests.php line 626
at Application->handleFoundRoute(array(true, array('middleware' => array('auth'), 'uses' => 'App\\Http\\Controllers\\SecretController@index'), array())) in RoutesRequests.php line 528
at Application->Laravel\Lumen\Concerns\{closure}() in RoutesRequests.php line 783
at Application->sendThroughPipeline(array(), object(Closure)) in RoutesRequests.php line 534
at Application->dispatch(null) in RoutesRequests.php line 475
at Application->run() in index.php line 28
我不知道我是否只是语法错误,或者我是否需要提供句点所在的实际数据。所以而不是
不记名...令牌...
有点像
持有者: 令牌:
对于那些想自己尝试的人:在“SecretController.php”中,您需要将代码更改为:
<?php
namespace App\Http\Controllers;
//use Illuminate\Http\Request;
use App\User;
use Firebase\JWT\JWT;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class SecretController extends Controller
{
public function index(Request $request)
{
return new Response('Hello ' . $request->user()->name,
200, ['Content-Type', 'text/plain']);
}
public function pub()
{
return new Response('Hello World', 200, ['Content-Type', 'text/plain']);
}
}
否则不能使用 web.php 中定义的 get 路由
解决方案
推荐阅读
- php - 计算两个日期之间的工作日
- marklogic - 关闭引导主机导致 Marklogic 中的整个集群关闭
- mysql - MySQL Error 1064: You have an error in your SQL syntax
- encoding - 用于大量小数位的类型的 TCL 编码
- java - Google Play Developer API - 应用内更新优先级不起作用
- django - 我已经在 apache 服务器中部署了我的 Django 应用程序。所有静态文件都得到正确服务,但它不接受来自表单输入的媒体文件
- angular - 依次调用 Observable.subscribe()
- c# - EPPLUS 没有清楚地识别 RichText 属性
- react-native - 如何摆脱默认的白色启动由 ios 中的 react-native 屏幕提供支持?
- c++ - 错误:非常量静态数据成员必须被初始化