2016-05-19 16 views
1

MongoDBの前にいくつかの異なるルートを提供するNode.jsアプリケーションがあります。認証されたリクエストだけがこれらのルートにアクセスできることを確認する必要があります。トレードのユーザー名とパスワード

理想的には、私はユーザー名とパスワードがAPIに入り、応答でトークンを返すように設定したいと考えています。 MongoDB内のトークンを自分で管理しても構いませんが、私たちが返すトークンが認証された要求を行うことができるようにする必要があります。私は毎回ユーザーが自分の資格情報を強制的に送ることを強制したくありません。

私はパスポートについて数日間読んでいますが、現在はの戦略があります。私はここでどの戦略を記述していますか?

+0

おそらくこの問題に対処するための戦略がないように聞こえる@Sumeetあなたがあなた自身のカスタム戦略 – Sumeet

+0

はい、THXを作成することができます。ここでは

はあなたが従うことができるリンクです。この質問には便利な情報がいくつかあります: http://stackoverflow.com/questions/17397052/nodejs-passport-authentication-token しかし、これは最初に認証してから手動でトークンを生成するために "Local Strategy" passport-http-bearer戦略を使用してトークンをチェックします。 –

答えて

1

ここで説明する戦略はどれですか?

Local Strategyについて説明しています。その説明を1として

このモジュールは、あなたのNode.jsアプリケーションでユーザー名とパスワードを使用して認証することができます。

私は毎回ユーザーの資格情報を強制的に送信する必要はなく、トークンだけです。

Passport認証戦略は、そのログインを永続化する方法ではなく、ユーザーを認証する(または単純にログインする)方法を提供しています。ログインの永続化は通常、ユーザーセッションで行われます。

解決方法の1つは、ローカル戦略とexpress session middlewareを組み合わせることです。 2つの方法を組み合わせることで、ユーザーに一度ログインしてからセッションを継続する必要がある、かなりシンプルな認証システムが可能になります。

一般的なWebアプリケーションでは、ユーザーの認証に使用する資格情報は、ログイン要求時にのみ送信されます。認証が成功すると、セッションは確立され、ユーザのブラウザに設定されたクッキーを介して維持されます。

以降の要求には、資格情報は含まれず、セッションを識別する固有のCookieが含まれます。ログイン・セッションをサポートするために、Passportはセッションとの間でユーザー・インスタンスを直列化および非直列化します。

PassportJS docsこれを実現する方法の例を挙げてください。

+0

@nemに感謝しますが、要求ごとにユーザー名とパスワードを送信する必要はありませんか? –

+0

@SSHhこれは私の編集をチェックアウトします。必要に応じて、コード例を追加できます。 – nem035

-1

このためには、ログイン用にJWTトークンを生成し、トークンを使用してユーザーの操作を常に認証することをお勧めします。

次の手順では、

  • のログイン時にトークン付属検証

    1. がトークンに生成するトークンのログインシステムのこのスタイルを実装する必要がありますされ、適切なユーザーに

    使用を識別するために、デコードされたデータをすべき使用しますあなたのAPIを保護するためのミドルウェア。

    https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens

  • 関連する問題