Когда я использовал filsh / yii2-oauth2-server, чтобы создать спокойный API oauth2 на yii2.Всегда возвращается 401.
Код подтверждения в контроллере
/**
* @return array
*/
public function behaviors()
{
return ArrayHelper::merge(parent::behaviors(), [
'authentication' => [
'class' => CompositeAuth::class,
'authMethods' => [
['class' => HttpBasicAuth::class],
['class' => HttpBearerAuth::class],
['class' => QueryParamAuth::class, 'tokenParam' => 'accessToken'],
],
],
'exceptionFilter' => [
'class' => ErrorToExceptionFilter::class
]
]);
}
Код в файле конфигурации
'oauth2' => [
'class' => \filsh\yii2\oauth2server\Module::class,
'components' => [
'request' => function () {
return \filsh\yii2\oauth2server\Request::createFromGlobals();
},
'response' => [
'class' => \filsh\yii2\oauth2server\Response::class,
],
],
'tokenParamName' => 'accessToken',
'tokenAccessLifetime' => 3600 * 24 * 7,
'storageMap' => [
'user_credentials' => 'common\models\User',
],
'grantTypes' => [
'user_credentials' => [
'class' => 'OAuth2\GrantType\UserCredentials',
],
'refresh_token' => [
'class' => 'OAuth2\GrantType\RefreshToken',
'always_issue_new_refresh_token' => true
]
],
],
код в пользовательской модели
/**
* {@inheritdoc}
*/
public static function findIdentityByAccessToken($token, $type = null)
{
/** @var \filsh\yii2\oauth2server\Module $module */
$module = Yii::$app->getModule('oauth2');
$token = $module->getServer()->getResourceController()->getToken();
return !empty($token['user_id'])
? static::findIdentity($token['user_id'])
: null;
}
Получить access_token
Запрос теста
Моя попытка
Когда я пытался найти проблему, я нашел ее в модели пользователя.
$token = $module->getServer()->getResourceController()->getToken();
Всегда возвращать NULL, я не знаю, еслив этом причина или как это исправить?