1
目前我有一個使用Laravel Passport(它使用league/oauth2-server
服務器實現)的Laravel安裝。我想在授予oauth2標記時返回用戶標識,以便我可以使用它在我的EmberJS應用程序中標識經過身份驗證的用戶。自定義Laravel護照BearerTokenResponse
建議的方法來做到這一點:
創建我自己的類:
use League\OAuth2\Server\ResponseTypes\BearerTokenResponse;
use League\OAuth2\Server\Entities\AccessTokenEntityInterface;
class UserIdBearerTokenResponse extends BearerTokenResponse
{
protected function getExtraParams(AccessTokenEntityInterface $accessToken)
{
return [
'user_id' => $this->accessToken->getUserIdentifier()
];
}
}
修改AuthorizationServer.getResponseType()
在vendor/league/oauth2-server/src
protected function getResponseType()
{
if ($this->responseType instanceof ResponseTypeInterface === false) {
// Return my own class instead of provided one
$this->responseType = new UserIdBearerTokenResponse();
}
$this->responseType->setPrivateKey($this->privateKey);
return $this->responseType;
}
但是這種方法需要我補充vendor/league/oauth2-server/src/AuthorizationServer.php
文件到我的git回購。
這對我來說似乎非常混亂和不可靠。有沒有更好的/更清潔的方式來實現這一目標?
它是什麼類型的令牌授權?你如何生成令牌?代碼是什麼樣的? – tptcat