У меня возникли проблемы, когда я использовал filsh / yii2-oauth2-server для создания oauth2 restful api на yii2. Всегда возвращает 401 - PullRequest
0 голосов
/ 10 апреля 2019

Когда я использовал 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, я не знаю, еслив этом причина или как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...