Yii2登录无密码验证

时间:2016-09-06 17:51:25

标签: php api yii yii2

我正在开发将使用其他应用程序的API的项目。所以我不会在我的应用程序上验证密码,将通过API请求执行此操作。我不想在db中存储用户的密码。只需通过API检查密码即可。

如何在没有登录凭据的情况下对用户进行身份验证?

2 个答案:

答案 0 :(得分:2)

登录& Yii 2中的会话由\yii\web\User类管理 可以通过\Yii::$app->user属性在应用程序生命周期中访问此类。

使用第三方提供商成功验证后,您可以使用Yii::$app->user->login($identity)

来使用login()功能

$identity应该是[IdentityInterface][4]的对象,通常是实现此接口的User ActiveRecord模型

请参阅有关身份验证的guide documentation以全面了解身份验证在Yii2中的工作方式

答案 1 :(得分:0)

在我们的应用中,我们使用与用户模型相关的字段 auth_key ,然后我们转到此链接,通过此 auth_key 在数据库中查找用户并制作登录(如果在数据库中找不到,则不是)

public actionAuthLogin($auth_key){
  if(($user = User::findOne(['auth_key' => $auth_key])) 
        && \Yii:$app->user->login($user)){
     return $this->goHome();
  } else {

     throw new NotFoundHttpException()
  }

}

然后

/controller/auth-login?auth_key=should_be_in_database_ahsgdashdajsdg123mkasd