Я впечатлен тем, насколько просто было создать REST api в Yii2. Тем не менее, я немного затрудняюсь понять базовую аутентификацию. Мои потребности совершенно просты, и я бы хотел, чтобы мое решение последовало их примеру.Yii2 REST Simplify BasicAuth
Мне нужна базовая аутентификация здесь. На данный момент я даже не против hardcoding, но вот что я сделал до сих пор.
У меня есть таблица базы данных, чтобы держать свою особую символическую ApiAccess (идентификатор, access_token)
ApiAccess.php - Модель - Примечание: IDE показывает синтаксическую ошибку на первой линии
class ApiAccess extends base\ApiAccessBase implements IdentityInterface
{
public static function findIdentityByAccessToken($token, $type = null)
{
return static::findOne(['access_token' => $token]);
}
}
модуля .php - в функции инициализации()
\Yii::$app->user->enableSession = false;
Я сделал ApiContro Мюллер, что каждое последующее существительное расширяет
ApiController.php
use yii\rest\ActiveController;
use yii\filters\auth\HttpBasicAuth;
use app\models\db\ApiAccess;
class ApiController extends ActiveController
{
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['authenticator'] = [
'class' => HttpBasicAuth::className(),
];
return $behaviors;
}
}
Как можно заметить, доступ к апи конечной точки в браузере запрашивает имя пользователя и пароль. Запрос через REST Client отображает ошибку доступа.
Как правильно привязать HttpBasicAuth к моей модели ApiAccess?
ИЛИ
Как жёстко маркер доступа апи? (Первый вариант, очевидно, лучше всего)
У меня есть эта работа, и посмотреть, как она должна работать сейчас. Спасибо. У меня все еще есть проблема, связанная с переопределением аутентификации LDAP уже на месте только для этого модуля. Я отправлю отдельный вопрос, если не могу решить его самостоятельно. – Joshua
FindOne не шифрует пароль, чтобы узнать, соответствует ли он паролю password_hash - как включить validatePassword с findOne? – Cymbals
@Cymbals http://www.yiiframework.com/doc-2.0/guide-security-passwords.html –