Ich entwickle ein einfaches Login in meiner Ionic 2 App.Ionic 2 Login Komponente und Auth Service
Ich habe eine Login-Komponente, die meine Login-Ansicht rendert und dann E-Mail und Passwort an den Auth-Dienst sendet, der validiert, ein Token speichert und wahr oder falsch an die Login-Komponente zurückgibt.
Anmeldungs Komponente:
export class LoginPage {
email: string;
password: string;
constructor(public navCtrl: NavController, public navParams: NavParams, public authentifiction: Authentification) {}
login() {
this.authentifiction.login(this.email, this.password);
}
loginSuccess() {
console.log('Success');
}
loginError() {
console.log('Failed');
}
}
Und mein Auth Service:
export class Authentification {
public authorized: boolean;
constructor(public http: Http, private alertCtrl: AlertController, public storage: Storage) {}
login(email, password) {
var params = 'email=' + email + '&password=' + password;
var headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
return this.http.post('URL', params, {
headers: headers})
.map(res => res.json())
.subscribe(
data => this.loginSuccess(data.auth_token),
error => this.loginError()
);
}
loginSuccess(auth_token) {
this.storage.set('auth_token', auth_token);
???
}
loginError() {
???
}
}
Wie kann ich die Auth-Service Rückkehr wahr oder falsch haben je nachdem, ob die Anmeldung erfolgreich war oder nicht?
Die gesamte beobachtbare Sache für mich immer noch ein bisschen verwirrend ist ...
Erstmal Danke für die Art und verständliche Erklärung von Observablen. Ich habe Ihren Code implementiert, aber in meinem Auth-Dienst bekomme ich: "Observable" kann nicht gefunden werden. Muss ich eine andere lib importieren? – almo
Ja, Sie können den Import {Observable} von 'rxjs' verwenden; – kdev
Außerdem möchte ich hinzufügen, dass die Art der Antwort, die Sie möchten, wie wahr oder falsch bei der Anmeldung, können Sie es auf Ihrem Server POST-Dienst implementieren, wo Sie diesen HTTP-POST-Aufruf tun. –