【发布时间】:2018-05-14 15:26:47
【问题描述】:
是否可以重载 laravel 护照授权密码令牌有效负载?
我的意图是将一些其他数据嵌入到生成的令牌哈希中,例如用户名、电子邮件等
【问题讨论】:
标签: laravel token laravel-passport
是否可以重载 laravel 护照授权密码令牌有效负载?
我的意图是将一些其他数据嵌入到生成的令牌哈希中,例如用户名、电子邮件等
【问题讨论】:
标签: laravel token laravel-passport
您可以像我在这里所做的那样在控制器中自己生成令牌:
<?php
namespace MyApp\Http\Controllers\API;
use Illuminate\Http\Request;
use Laravel\Passport\Http\Controllers\ConvertsPsrResponses;
use League\OAuth2\Server\AuthorizationServer;
use MyApp\Http\Controllers\APIController;
use Illuminate\Auth\AuthenticationException;
use Zend\Diactoros\ServerRequest;
use Zend\Diactoros\Response as Psr7Response;
class LoginController extends APIController
{
use ConvertsPsrResponses;
/**
*
* @param Request $request
* @param AuthorizationServer $authServer
* @return \Illuminate\Http\JsonResponse
* @throws AuthenticationException
* @throws \League\OAuth2\Server\Exception\OAuthServerException
*/
public function login(Request $request, AuthorizationServer $authServer)
{
$token = $this->getPasswordToken($request, $authServer);
$data = [
"token_details" => $token,
];
return $this->successResponse(
'Successful Login',
200,
$data
);
}
/**
* @param $request
* @param AuthorizationServer $authServer
* @return mixed
* @throws \League\OAuth2\Server\Exception\OAuthServerException
*/
private function getPasswordToken($request, AuthorizationServer $authServer)
{
$parsedBody = [
'grant_type' => 'password',
'client_id' => config('app.client_id'),
'client_secret' => config('app.client_secret'),
'username' => $request->username,
'password' => $request->password,
'scope' => '',
];
$serverRequest = new ServerRequest(
$request->server(),
[],
null,
$request->method(),
'php://input',
$request->header(),
[],
[],
$parsedBody
);
$response = $this->convertResponse(
$authServer->respondToAccessTokenRequest($serverRequest, new Psr7Response)
);
return json_decode($response->getContent());
}
}
【讨论】:
是的,这是可能的。请看一下这个包
【讨论】: