2016-09-20 9 views
1

Androidアプリケーションが自分のサイトのデータにアクセスできるように、nodeJSサーバーに安全なReST APIを構築しています。他の投稿を読んで、私はアクセストークンを使うべきであることを理解しました。ReST API:データベース内のユーザーにアクセストークンを関連付ける必要があります

1)ユーザーがAndroidアプリにログインすると、アプリは自分のサイトの/api/loginにユーザー名とパスワードを要求します(もちろんこれはSSL経由で行う必要があります)盗聴から守るため)。

2)私のサーバはユーザ名+パスワードが一致することを検証し、一致する場合はアクセストークンで応答します。

3)アプリケーションはこのアクセストークンを使用して、その後のすべてのリクエストをAPIに送信します。

私の質問は私のサーバー上のデータベースにアクセストークンを保存する必要がありますか?具体的には、アクセストークンがその特定のユーザーに関連付けられているという事実を保存する必要がありますか?私が見たほとんどのチュートリアルではこれをしませんでしたが、そうでない場合は、このアクセストークンを持つユーザーを他のユーザーのデータを変更または表示することを止めることは何ですか?データベース内のユーザーとアクセストークンをペアにする必要はありませんか?

答えて

1

このライブラリを使用しようとすると、私は同じタイプのプロジェクトを行いました。このlife saverは私の解決策でした。

+0

うん、これは私が必要なものです。 jwtを使用して、秘密鍵でトークンに署名すると、その署名をペイロード(ユーザーのメールを含む)に関連付けます。そのようにして、トークンを実際に特定のユーザーとペア設定しますが、データベースに何かを格納する。ありがとう。 – rmacqueen

+0

あなたは大歓迎です:) –

0

安全なAPIを構築する必要がある場合は、状況は少し複雑です。プライベートキーストアを使用してアクセストークンに署名する必要があります。

Auth0のような認証サービスを使用するオプションはありますか?彼らはあなたのためにJWTトークンを生成しており、このトークンを検証する必要があります。 APIは完全にステートレスです。ほとんどのプログラミング言語用のlibを自社のWebサイトで見つけることができます。

0

あなたがしたいのは、正確にHTTPセッションです。

HTTPセッション機能を使うことができると思います.Django、SpringなどのWASフレームワークで既に実装されています.NodeJSがセッション機能を提供する場合は、フレームワークでセッション機能を使用してください。そうでない場合は、HTTPセッションライブラリを参照してください。おそらく、あなたはセッションの実装を扱う多くのライブラリを見つけることができます。

関連する問題