魏曦视频。httpbasicAuth认证不可以通过。反反复复弹窗。
ArticleController代码如下:
use common\models\Article;
use yii\data\ActiveDataProvider;
use yii\filters\auth\HttpBasicAuth;
use yii\filters\auth\QueryParamAuth;
use yii\helpers\ArrayHelper;
use yii\rest\ActiveController;class ArticleController extends ActiveController
{public $modelClass = 'common\models\Article';//以下是认证部分代码public function behaviors(){return ArrayHelper::merge(parent::behaviors(), ['authenticator' => ['class' => HttpBasicAuth::className(),'auth' => function ($username, $password) {$user = Adminuser::find()->where(['username' => $username])->one();
// if ($user->validatePassword($password)) {if ($user->validatePassword($password)) {return $user;}return null;}]]);}}
不明白原因。
提示错误:
method “validatePassword” is not find in array|null|yii\db\activerecord
但是adminuser里面有,只是提示的是?到底$user 是什么?我也看不到。
先这样,记下来。
yiichina:
https://www.yiichina.com/doc/api/2.0/yii-filters-auth-httpbasicauth
Tip: 如果身份验证不能按预期工作,确保您的 Web 服务器通过 $_SERVER['PHP_AUTH_USER'] 和 $_SERVER['PHP_AUTH_PW'] 的值。 如果你使用 Apache 配合 PHP-CGI,您可能需要将此行添加到 .htaccess 文件中:
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
不知道有没有关系。也没有仔细搜索。需要的时候再看看。