Laravel Passport邮递员路线测试

时间:2017-07-15 22:59:23

标签: laravel oauth-2.0 postman laravel-passport

我设置了Laravel Passport,并开始创建一些Get路由来获取一些数据,这些工作正常。

现在我试图发布以获取身份验证令牌,但目前无效:

这是我打电话的路线(获取路线有效,后路线不起作用):

我的ApiController中的方法看起来像这样:

Route::group(['middleware' => 'auth:api'], function ()
{;
    Route::get('users', ['as' => 'users', 'uses' => 'ApiController@users']);
    Route::post('login/{id}/{name}', ['as' => 'login', 'uses' => 'ApiController@login']);
});

我尝试使用以下选项enter image description here调用它:

修改

我不知何故设法在数小时后完成这项工作,但仍然不明白。

首先我做了以下事情:

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.");
    }
}

有了这个我可以得到代码参数的标记,但我认为有更好的方法来做到这一点。

最后,我现在获得了访问+刷新令牌:

enter image description here

但必须有更好的方法来获取回调请求的代码令牌($ request->代码),而不是转储它并复制它。

2 个答案:

答案 0 :(得分:0)

问题是你的路由组内有登录路由,其上有auth:api。这意味着用户需要进行身份验证才能进行身份验证。只需删除组外的登录路由,您就可以了。

答案 1 :(得分:0)

您应该在Passport::routes的启动方法中调用AuthServiceProvider方法。 此方法将注册发布访问令牌和撤销访问令牌,客户端和个人访问令牌所需的路由

public function boot()
{
    $this->registerPolicies();
    Passport::routes();
}

/oauth/authorize路由已由Passport::routes方法定义。您无需手动定义此路线。