我正在开发将使用其他应用程序的API的项目。所以我不会在我的应用程序上验证密码,将通过API请求执行此操作。我不想在db中存储用户的密码。只需通过API检查密码即可。
如何在没有登录凭据的情况下对用户进行身份验证?
答案 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