yiijeka писал(а): ↑2018.08.07, 14:32
Посмотрите \yii\filters\auth\HttpBasicAuth вам нужно всего то поменять там
$response->getHeaders()->set('WWW-Authenticate', "Basic realm=\"{$this->realm}\"");
на
$response->getHeaders()->set('Authorization', "Basic realm=\"{$this->realm}\"");
К сожалению это не помогло, возможно я плохо объяснил, в данный момент при использовании yii2-authclient выполняю следующий код:
Код: Выделить всё
$model = new LoginForm();
if ($model->load(Yii::$app->request->post())) {
$client = Yii::$app->authClientCollection->getClient('backend');
try {
// аутентификация напрямую через имя пользователя и пароль:
$accessToken = $client->authenticateUser($model->username, $model->password);
} catch (\Exception $e) {
// аутентификация завершилась неудачей
Yii::error($e->getMessage());
}
Отправляется следующий запрос:
Код: Выделить всё
POST http://localhost:8500/uaa/oauth/token
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
grant_type=password&username=*****&password=******&client_id=clietn1&client_secret=***************************************************
Сформированный запрос не подходит для моего api т.к. в заголовке должно еще содержаться:
Код: Выделить всё
Authorization: Basic YhJEioIdDkRloDRqXPcsRZfvywEdCd==
где 'YhJEioIdDkRloDRqXPcsRZfvywEdCd==' это зашифрованные данные clientId и clientSecret в Base64.
Правильный формат запроса должен выглядеть следующим образом:
Код: Выделить всё
POST http://localhost:8500/uaa/oauth/token
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Authorization: Basic YhJEioIdDkRloDRqXPcsRZfvywEdCd==
grant_type=password&username=*****&password=******&scope=front
И пока писал возник еще вопрос, как добавить дополнительный параметр "scope" в тело запроса?