私はユーザーロギングサービスを作ろうとしていますが、ユーザーがログインボタンをクリックすると、ユーザー名とパスワードが正しいサーバーであれば、apiサーバーに呼び出されます。ユーザー情報で応答し、私は、ユーザー変数に、この情報を解析する必要があり、ユーザーがnullでない場合は、trueそれ以外の戻りがfalseを返しますが、常に法と真...角度HTTPリクエスト - データの取得
ユーザーサービスを返しmetod:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import 'rxjs/add/operator/map';
import { User } from '../entities/User';
@Injectable()
export class UserService {
private usersUrl: 'http://localhost:8080/api/users';
user: User;
constructor(private http: HttpClient) {}
isLoggedIn() {
return this.user != null;
}
isAdmin() {
return this.user.isAdmin;
}
unLoggin() {
this.user = null;
}
login(username: string, password: string) {
return this.http.get<User>(`${this.usersUrl}/verify?username=${username}&password=${password}`)
.map(
user => {
this.user = user;
return this.user != null;
});
}
}
を
jsonのユーザー例:
{"id":2,"name":"Some","email":"sometni","username":"iafouafa","password":"Hoifhnaol"}
私は複数の問題があると思いますが、最初はメソッドが無効ですが、これは解決できますが、返すブール値にリメイクし、最後にreturn演算子を使用しないと、常にfalseを返します。詳細が必要な場合は、必要なものを教えてください。
私の悪い英語のために申し訳ありません。
ありがとうございました!
を呼び出すことができますどこか
ログイン performeロギングを実行するには、あなたがloginメソッドと呼ばれることがありますか?参考:角度のあるHttpClientを使用して観測値(RXJSのcf参照)を返す場合、要求を実行するには、それを購読する必要があります: 'this.login.subscribe(data => { console.log(" User Login "+ data" }); ' –
マップメソッドを削除してコードを使用すると、ユーザー名とパスワードが正しくなるようにコンソールjson文字列にログが記録され、' data => {this.user = data} 'と' return this.user!= null'を返します。偽を返します –