2015-09-09 3 views
9

Ich möchte Benutzerregistrierung/Login-Prozess in meinem Projekt implementieren, in dem ich Web-Client-Anwendung in angular gemacht und mobile Client ist auf android.Verwenden Sie Yii2-Benutzer für die Benutzerregistrierung in Yii2 Rest Api

Ich verwende REST für die Client/Server-Kommunikation. Ich habe yii2-user in meinem yii entwickelten Back-End installiert. Was ich will, ist eine Ruhe-API so zu erstellen, dass jede meiner Client-Anwendungen yii2-user für Benutzerregistrierung und Login-Prozess verwendet. So dass im Client, wenn Benutzer die Anfrage registrieren möchten, wird von yii-2 Benutzermodul behandelt werden? Irgendeine Anregung, wie kann ich das erreichen? Oder gibt es eine bessere Möglichkeit, REST API für die Registrierung und Authentifizierung in Yii2 zu machen?

+1

hast du alles versucht? –

+2

Zur Registrierung können Sie sich den vorhandenen Registrierungscode des yii2-user plugins ansehen. Für die Anmeldung können Sie eine OAUTH-Schnittstelle erstellen. – devOp

+0

@devOp Muss ich einen UserController erstellen, der ActiveController erweitert und ihm einen Pfad des yii2-Benutzermodells gibt? Könnten Sie bitte mehr darüber erfahren? Mein Hauptanliegen ist es, den Benutzer dazu zu bringen, Api so zu registrieren, dass der mobile und der Web-Client es nutzen können. – james

Antwort

4

Verwenden Sie den yii2-Benutzer-Controller zB dektrium "Usercontroller" und erweitern sie von \ yii \ Rest \ ActiveController dann können Sie die Modellklasse in der Usercontroller angeben als

public $modelClass = 'dektrium\user\models\User'; 

Im übrigen Post-Anforderung einige verwenden Parameter, um JSON-Antwort für Ruheanforderung zu geben. d.h

register-form[username]=YOURUSERNAME&register-form[password]=YOURPASS&register-form[email][email protected]&someparam=true 

In der Steuerung

$model->load(\Yii::$app->request->post()) && $model->register() 

wird der Benutzer erfolgreich registrieren.

Sie können die Idee von hier aus erweitern. Prost :)

+1

Gibt es eine Möglichkeit, dies zu tun, ohne die Klasse der Dektrium-Benutzermodule zu ändern? – JJPunch