2017-03-04 23 views
0

アプリからのリクエストがあったときにサーバーからユーザーを特定する方法を知りたいと思います。私がアプリにログインしていて、自分のプロフィールを更新してサーバーにリクエストを送信したい場合と同様です。サーバーは特定のユーザーからの要求をどのように識別しますか?私はサーバー言語としてPHPを使用し、共有プリファレンスを使用してユーザーセッションを保存しています。リクエストを処理するサーバーを特定する方法

助けがあれば助かります。

+0

あなたのサーバーとアプリケーションの両方が理解できる一意のIDを持つ必要があります。この場合、データベースでクエリを実行するときに使用できるユーザーIDと思っています。それは – Roljhon

+0

私はこのオプションを考えました。ユーザーIDは一意で、必要に応じて暗号化する必要があります。しかし、私は他の選択肢があるかどうかを知りたがっていましたか?あなたの返信ありがとう – Nikhil

+0

ユーザーIDはどのように保存する必要がありますか?共有環境設定を使用しますか? – Nikhil

答えて

1

この結果を達成する最も簡単な方法は、(ランダムに生成された)ユーザに一意の識別子を付けることです。この情報をデータベース内のユーザの時間、名前、および識別子と共に保存します。また、アプリで持続する、共有の設定は大丈夫です。しかし、データベースを使用することを検討してください。素晴らしいものがアンドロイドのための領域です。次に、任意の要求がサーバに送信されると、その識別子とともにユーザの名前を送信し、この情報を用いてクエリ検索を実行する。したがって、このユーザー用に保存された情報を返します。

意味がありますか?あなたのニーズに合わせて調整できる他の洗練されたアプローチがあります。共有プリファレンスの概念は、小さな過渡情報を格納することです。データベースを使用すると、データと管理された操作をより安全に制御することができ、非同期的に操作を行うことができ、後でトラフィックに遭遇するときに大きな役割を果たします。コミュニケーションのためのWebトークンも考慮してください。 JSON Webトークン(JWT)は、JSONオブジェクトとして当事者間で情報を安全に伝送するコンパクトで自立的な方法を定義するオープンスタンダード(RFC 7519)です。この情報はデジタル署名されているため、検証および信頼することができます。 JWTは、秘密(HMACアルゴリズムを使用)またはRSAを使用する公開鍵/秘密鍵のペアを使用して署名できます。

+0

私はこのアプローチを考えました。しかし、共有の設定がこの場合に安全かどうかを知りたがっていますか? – Nikhil

+0

更新された回答を確認してください。あなたの操作がシンプルであれば、保存したいキー値のコレクションが比較的少ない場合は、共有プリファレンスを使用することができます。 – Remario

+0

私は共有の設定としてユーザーIDを保存し、POST要求の権利を使用してサーバーにユーザーIDと共にデータを送信できますか? – Nikhil

0

アプリに正常にログインした後、userIdをローカル(SQLiteまたはSharedPreferencesなど)に保存します。
サーバからのユーザ要求があるたびに、userIdをパラメータリストに追加します。
サーバ側では、まず、ユーザIDがnullであるかどうかを確認し、データベースに存在しない場合はStringエラーメッセージを表示し、それ以外の場合は処理を続行します。

関連する問題