Laravel 拉威尔护照邮递员路线后测试
我设置了Laravel Passport,并开始创建一些Get路径来获取一些数据,效果很好 现在我正在尝试发布以获取身份验证令牌,该令牌目前不起作用:Laravel 拉威尔护照邮递员路线后测试,laravel,oauth-2.0,postman,laravel-passport,Laravel,Oauth 2.0,Postman,Laravel Passport,我设置了Laravel Passport,并开始创建一些Get路径来获取一些数据,效果很好 现在我正在尝试发布以获取身份验证令牌,该令牌目前不起作用: Route::group(['middleware' => 'auth:api'], function () {; Route::get('users', ['as' => 'users', 'uses' => 'ApiController@users']); Route::post('login/{id}/{n
Route::group(['middleware' => 'auth:api'], function ()
{;
Route::get('users', ['as' => 'users', 'uses' => 'ApiController@users']);
Route::post('login/{id}/{name}', ['as' => 'login', 'uses' => 'ApiController@login']);
});
这是我调用的路线(获取路线有效,发布路线无效):
我的ApicController中的方法当前如下所示:
public function login(Request $request, $id, $name)
{
if($request->isMethod('post'))
{
$id = $request->id;
$name = $request->name;
$inquiry = new Inquiry();
$inquiry->user_id = $id;
$inquiry->user_name = $name;
if($inquiry->save())
{
return redirect()->route('inquiry.index')->with('success', 'Success.');
}
else
{
return redirect()->route('inquiry.index')->with('error', 'An error accured.')->withInput();
}
}
else
{
dd("Use Post.");
}
}
我尝试通过以下选项调用它:
编辑
不知何故,我在几个小时后终于得到了这份工作,但还是不明白什么
首先,我做了以下工作:
public function callback(Request $request)
{
dd($request->code) // this holds a token I need for the code parameter in the post
...
有了它,我可以获得代码参数的令牌,但我认为有更好的方法来实现这一点
最后,这是我如何获得access+刷新令牌的:
但是必须有更好的方法来获取回调请求的代码标记($request->code),而不是转储并复制它。问题是,您的登录路由位于一个路由组中,路由组上有auth:api。这意味着用户需要经过身份验证才能进行身份验证。只需删除组外的登录路由,您就可以了。您应该在
AuthServiceProvider的启动方法中调用Passport::routes
方法此方法将注册颁发访问令牌和撤销访问令牌、客户端和个人访问令牌所需的路由:
public function boot()
{
$this->registerPolicies();
Passport::routes();
}
/oauth/authorize
路由已由Passport::routes
方法定义。您不需要手动定义此路线。那么完整的路线会是什么样子呢?目前我运行的是代客泊车,所以我的url看起来像这样:http://79f123saf.ngrok.io
,所以我尝试了这个网址:http://79f123saf.ngrok.io/api/oauth/authorize
还有这个http://79f123saf.ngrok.io/oauth/authorize
使用我在上面的问题中发布的选项,但我在/oauth/authorize
上收到一条令牌不匹配异常
错误消息,在上收到一条NotFoundHttpException
/api/oauth/authorize
因此,我的AuthServiceProvider中确实有正确的引导方法。您可以将其与会话一起保存或存储在数据库中