2016-09-06 6 views
1

私は別のアプリケーションのAPIを使用するプロジェクトに取り組んでいます。だから、私は自分のアプリでパスワードを検証しないで、APIリクエストでこれを行います。私はユーザーのパスワードをdbに保存したくありません。 APIでパスワードを確認するだけです。Yii2ログインパスワードなしで認証

ログイン資格情報なしでユーザーを認証するにはどうすればよいですか? Yiiの2で

答えて

2

ログイン&セッションは、このクラスには、\Yii::$app->userプロパティを介してアプリケーションのライフサイクルでアクセス\yii\web\Userクラス によって管理されています。あなたはYii::$app->user->login($identity)

$identityを使用してlogin()機能を使用するサードパーティのプロバイダを使用して認証が成功

がために、認証にguide documentationを参照してください、このインタフェースを実装し、通常はユーザーのActiveRecordモデル[IdentityInterface][4]のオブジェクトでなければなりませんYii2の認証方法についての完全な理解

+0

私は、ユーザーの資格情報が有効かどうかをAPIでチェックし、もし有効であれば、与えられた電子メールを使ってデータベースからuser_idを見つけ出し、Yii :: $ app-> user-> login($ identity)をどのように使うのでしょうか? –

+1

'$ identity'は' User :: findOne($ user_id) '(UserにIdentityInterfaceを実装している場合)です。 – Manquer

0

私たちのアプリでは、フィールドにはauth_key私たちは、このリンクに行くRモデルと、その後は、この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 
関連する問題