Gau*_*rav 0 oauth-2.0 laravel laravel-5 laravel-passport
我正在使用密码授予令牌为移动应用程序构建API .当用户尝试登录应用程序时,客户端会发送访问令牌请求.
用户可能没有使用发送到他的电子邮件的链接验证他的帐户.我希望为查询添加一个附加条件,并相应地提供错误响应.目前,由于Passport管理令牌部分,我无法直接执行.
怎么解决这个问题?如果用户帐户有任何问题,我如何潜入令牌请求并发送自定义响应?并继续发送令牌.
来自Laravel贡献者的回答:
制作自己的oauth/token路由并将其放在/ routes 中的oauth.php文件中:
Route::post('/oauth/token', [
'uses' => 'Auth\CustomAccessTokenController@issueUserToken'
]);
Run Code Online (Sandbox Code Playgroud)
制作CustomAccessTokenController.php
<?php
namespace App\Http\Controllers\Auth;
use Psr\Http\Message\ServerRequestInterface;
use Laravel\Passport\Http\Controllers\AccessTokenController;
class CustomAccessTokenController extends AccessTokenController
{
/**
* Hooks in before the AccessTokenController issues a token
*
*
* @param ServerRequestInterface $request
* @return mixed
*/
public function issueUserToken(ServerRequestInterface $request)
{
$httpRequest = request();
// 1.
if ($httpRequest->grant_type == 'password') {
// 2.
$user = \App\User::where('email', $httpRequest->username)->first();
// Perform your validation here
// If the validation is successfull:
return $this->issueToken($request);
}
}
}
Run Code Online (Sandbox Code Playgroud)
参考链接 - https://github.com/laravel/passport/issues/225#issuecomment-271057428
| 归档时间: |
|
| 查看次数: |
2378 次 |
| 最近记录: |