Yii2使用查询字符串进行Api用户验证

时间:2016-12-01 07:57:24

标签: yii2 yii2-advanced-app

我对Yii2很新,我试图用Yii2构建一个API。 我已经完成了基本的API代码,它对我来说很好。 我正在尝试使用

进行用户名密码验证

public function behaviors()
  {
    $behaviors = parent::behaviors();
    $behaviors['authenticator'] = [
      'class' => CompositeAuth::className(),
      'authMethods' => [
        [
          'class' => HttpBasicAuth::className(),					 
          'auth' => function($username, $password)
          {
            $out = null;
            $user = \api\modules\v1\models\User::findByUsername($username);			
            if($user!=null)
            {
              if($user->validatePassword($password)) $out = $user;
            }
            return $out;
          }
        ],        
      ]	  
    ];
   return $behaviors;
  }

但这适用于弹出浏览器的帖子操作或带有Baseauth的邮递员。

但我正在尝试对查询字符串执行相同操作 喜欢:http://localhost/api/userauth?username=xxxx&password=xxxx 返回访问令牌。

你能帮忙吗?提前谢谢......

1 个答案:

答案 0 :(得分:1)

这是一个坏主意。您的网络服务器会记录GET个参数,因此可以以明文形式向有权访问日志的任何人提供凭据。改为使用POST。