【发布时间】:2017-02-10 14:15:52
【问题描述】:
我目前正在 Laravel 中编写 API,并使用护照。我的客户将使用它自己的 API,因此我在 Passport 中使用个人访问权限。
我不想在 POST 请求中显示我的 oauth 路由和授权 id 或机密,所以我创建了一个路由,让用户发布也可以登录,然后处理向 oauth/token 发送 POST 请求路线,如下图,
protected function authenticate(Request $request) {
//return $request->input();
//return Response::json($this->client);
$email = $request->input('username');
$password = $request->input('password');
$request->request->add([
'username' => $email,
'password' => $password,
'grant_type' => 'password',
'client_id' => $this->client->id,
'client_secret' => $this->client->secret,
'scope' => '*'
]);
$tokenRequest = Request::create(
env('APP_URL').'/oauth/token',
'post'
);
return Route::dispatch($tokenRequest)->getContent();
}
我的问题是无论 oauth 登录是否成功,我的身份验证都会返回 200。有没有办法从控制器触发路由并返回该 http 代码,而不是从 http 响应调用它的方法?
【问题讨论】:
-
如果您的前端直接在同一应用程序中使用 API 并使用 JavaScript,您可以简单地使用内置的 CSRF 令牌。你见过这个吗? laravel.com/docs/5.3/…
标签: php laravel authentication oauth laravel-5.3