Я целый день смотрю в Google и до сих пор не понимаю, как добиться RESTFul httpBasicAuth с помощью токена.
Во-первых, я хотел бы спросить, могу ли я использовать RESTFul HttpBasicAuth без Https?
Затем ниже приведен мой код для проверки подлинности Yii2 RESTFul HttpBasicAuth, надеюсь, кто-то может потратить некоторое время на проверкумой код и направьте меня, что не так в моем коде.
Сначала это мой конфиг настройки yii2 о компоненте User Application:
'user' => ['identityClass' => 'common\models\Users',
'enableAutoLogin' => false
],
, ниже приведен фрагмент моего общего \ models \ Users IdentityClass
пространства имен common\ models;
use Yii;
use yii\base\NotSupportedException;
use yii\web\IdentityInterface;
use app\models\Ostoken;
class Users extends \yii\db\ActiveRecord implements IdentityInterface
{
public static function findIdentityByAccessToken($token, $type = null) {
/* Compulsory for RESTFul*/
// die("trying...");
// throw new NotSupportedException('"findIdentityByAccessToken" is not implemented.');
file_put_contents("/var/www/html/y2api/logs/RESTFul_login_".date("Y-m-d"), date("H:i:s").":".$token."\r\n", FILE_APPEND);
$apiUser = Ostoken::find()
->where(['token' => $token])
->one();
return static::findOne(['username' => $apiUser->username]);
}
}
, затем я пытаюсь вызвать спокойный URL-адрес по http://192.168.33.10/api/Banktransactions?access-token=xxxxxxxx
, тогда я получаю следующую ошибку в формате json:
{
"name": "Unauthorized",
"message": "Your request was made with invalid credentials.",
"code": 0,
"status": 401,
"type": "yii\\web\\UnauthorizedHttpException"
}
, как вывидно, я поместил file_put_contents в findIdentityByAccessToken
, но он никогда не выполняется.