2016-12-30 10 views
1

私のアプリケーションにログインしているユーザーは、サーバーから自動化されています。それは次のように機能します。 http://localhost/api/auth/${this.username}/${this.password}POSTメソッドを使用してユーザーを認証する:: Angular2&TypeScript

  • 応答:

    • ユーザは、ログインボタンをクリックしたときに、HTTP POST要求がアドレスに送信され

    • 別々の入力にログイン名とパスワードを書き込み、サーバーからブール値です。ログインとパスワードが正常であれば、応答はtrue、そうでなければfalseとなります。

    これが私の要求です:

    this.http.post(`http://localhost/api/auth/${this.username}/${this.password}`, cred, { 
        headers: headers 
    }) 
        .map(res => res.json()) 
        .subscribe(
         data => this.response = data, 
         err => console.log('error'), 
         () => console.log('Authentication Complete') 
        ); 
    

    私の問題は、私は、リンク後cred変数ちょうどいいということが何であるかを知らないです。これらはheaders必要ですか?それは動作するはずですか?

    私はすべての答えをupvoteします。前もって感謝します。

    EDIT正しいログインとパスワードはadmin/adminです。

    ユーザーがadmin/adminと書き込むと、trueが返されます。

  • +0

    uhmm、ちょうどコメント:URLでユーザー名とパスワードを送信することを再考してください... – Alex

    +0

    @ AJT_82それはちょっとした一時的な解決策です。 –

    +0

    よろしくお願いします。 :) – Alex

    答えて

    0

    TOH-Httpをご覧になることをお勧めします。これは良いチュートリアルです。

    はい、あなたはURLを要求しているだけなので、投稿を使う必要はありません。ポストはあなたの要求に沿って身体を送るときのためのものです。

    我々はコメントで述べたように、これは実用的なソリューションです:

    this.http.get('http://localhost/api/auth/${this.username}/${this.password}') 
        .map(res => res.json()) 
        .subscribe(d => console.log(d)) 
    

    私もあなたがサービスでのマッピングを行う提案(私はあなたがサービスにこの要求を行っていると仮定)と.subscribeを行うだろうあなたのコンポーネントでこのhttp-requestを呼び出す。あなたの場合、あなたはこのようにそれを行うことができtrueだけfalseを受けたりしているので:

    return this.http.get('http://localhost/api/auth/${this.username}/${this.password}') 
         .map((res: Response) => { 
          let resp = res.json(); 
          if (resp == true) { 
           return true; 
          } 
          return false; 
         }); 
         .catch(... 
    } 
    

    そして、あなたの方法であなたがそうのようなHTTPリクエスト.subscribeを呼ぶ:

    .subscribe(res => { 
        if(res == true) { 
         // do something... 
        } else { 
         // do something else... 
        } 
    }) 
    

    と言及したように、将来、あなたのユーザー名とパスワードをURLで送信しないでください! ;)

    +0

    'get'を使用しました。それが正しいか? –

    +0

    はい、それは正しいです、私は自分自身を取得して投稿することで台無しになった;)あなたは単にURLを要求しているので、投稿を使う必要はありません。それがうまくいくかどうか教えてください。投稿を少し編集します(もっとよく購読するなど...) – Alex

    +0

    admin/adminと書くと、trueを返します。他に何かを書くと、falseを返します。 –

    関連する問題