2016-12-01 7 views
0

Ich bin sehr neu zu Yii2 und ich versuche, eine API mit Yii2 zu bauen. Ich habe mit grundlegenden API-Code getan, und es funktioniert gut für mich. Und ich versuche, den Benutzername Passwort-Validierung, dass die Arbeit für mich mitYii2 Api Benutzer Validierung mit Abfrage String

public function behaviors() 
 
    { 
 
    $behaviors = parent::behaviors(); 
 
    $behaviors['authenticator'] = [ 
 
     'class' => CompositeAuth::className(), 
 
     'authMethods' => [ 
 
     [ 
 
      'class' => HttpBasicAuth::className(), \t \t \t \t \t 
 
      'auth' => function($username, $password) 
 
      { 
 
      $out = null; 
 
      $user = \api\modules\v1\models\User::findByUsername($username); \t \t \t 
 
      if($user!=null) 
 
      { 
 
       if($user->validatePassword($password)) $out = $user; 
 
      } 
 
      return $out; 
 
      } 
 
     ],   
 
     ] \t 
 
    ]; 
 
    return $behaviors; 
 
    }

aber diese Arbeit mit Post Aktion mit Browser zu tun Pop-up oder in Postbote mit Baseauth.

Aber ich versuche, das gleiche mit Query-String zu tun wie: http://localhost/api/userauth?username=xxxx&password=xxxx die Zugriffstoken zurückzukehren.

können Sie bitte dabei helfen. Vielen Dank im Voraus ...

Antwort

1

Dies ist eine schlechte Idee. GET Parameter werden von Ihrem Webserver protokolliert, sodass die Anmeldeinformationen für jeden mit Zugriff auf die Protokolle im Nur-Text-Format verfügbar sind. Verwenden Sie stattdessen POST.

+0

Vielen Dank für Ihre Antwort, aber ich muss die URL an Dritte weitergeben, also müssen sie im Code verwenden, das ist y dachte, so zu tun. – Kenny

+1

Die dritte Partei sollte in der Lage sein, POST zu verwenden, um die Parameter zu senden, es ist eine Standardmethode, selbst im Umgang mit Dritten zu arbeiten. – marche