[英]Yii2 Login Authenticate without password
我正在研究將使用另一個應用程序的API的項目。 因此,我不會在我的應用程序上驗證密碼,而是通過API請求進行驗證。 我不想在db中存儲用戶密碼。 只需通過API檢查密碼即可。
沒有登錄憑證的情況下如何認證用戶?
Yii 2中的登錄和會話由\\yii\\web\\User
類管理。在應用程序生命周期中,可以通過\\Yii::$app->user
屬性訪問該類。
使用第三方提供商成功進行身份驗證后,可以使用Yii::$app->user->login($identity)
使用login()
函數
$identity
應該是[IdentityInterface][4]
的對象,通常是實現此接口的User ActiveRecord模型
請參閱有關身份驗證的指南文檔 ,以全面了解Yii2中身份驗證的工作方式
在我們的應用程序中,我們使用與用戶模型相關的字段auth_key ,然后轉到此鏈接,通過此auth_key在數據庫中找到一個用戶並進行登錄(如果在database中找不到該用戶, 則不進行登錄)
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.