簡體   English   中英

Yii2登錄無密碼認證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM