REST APIを使用してネイティブモバイルアプリを認証する


16

すべての主要なモバイルプラットフォーム(iOS、Android、Windows)のモバイルアプリケーションを対象とする新しいプロジェクトをすぐに開始します。これは、クライアントサーバーアーキテクチャになります。

アプリは情報提供とトランザクションの両方です。トランザクション部分については、トランザクションを行う前にアカウントを持ちログインする必要があります。私はモバイル開発が初めてなので、これらのプラットフォームで認証部分がどのように行われるかはわかりません。クライアントはREST APIを介してサーバーと通信します。もちろんHTTPSを使用します。

ユーザーがアプリを開いたときにログインするか、トランザクションを実行するときにのみログインするかはまだ決めていません。

次の質問がありました。

1)Facebookアプリケーションと同様に、アプリケーションを初めて開くときにのみ資格情報を入力します。その後、アプリを開くたびに自動的にサインインされます。これをどのように達成しますか?単に資格情報を暗号化してデバイスに保存し、アプリを起動するたびに送信するだけです?

2)REST APIに対して行われた(トランザクション)要求ごとにユーザーを認証する必要がありますか、またはトークンベースのアプローチを使用する必要がありますか?

他の認証方法をお気軽にご提案ください。

ありがとう!

回答:


14

ユーザー名/パスワードをRESTful APIのログインメソッドに渡すと、アクセストークンが返されます。そのアクセストークンは、(システムに対して)一意の文字列です。

アクセストークンのデバイスストア(永続化)。サーバーにRESTfulリクエストを送信するたびに、HTTPリクエストのヘッダーにそのアクセストークンを入れます。サーバーはアクセストークンによってユーザーを見つけ、成功するとリクエストを満たします。

ユーザー名/パスワードをデバイスに保存しないください


サードパーティ(ハッカーなど)がアクセストークンを取得することは可能ですか?
スーパーセル

もちろんそれは可能です。特にHTTPSを使用していない場合。ほとんどのオンラインメールクライアントは、時々再ログインするように求めています。トークンの有効期限は、たとえば2週間に設定されています。したがって、2週間に1回、再ログインする必要があります。
c-スマイル

アクセストークンの生成方法、およびアクセストークンのサーバーへの保存方法。
Ghyath Serhal

@ c-smile Facebookは私に再ログインを要求しませんでした。したがって、パスワードとアクセストークンの違いは実際にはわかりません。
ミカエルマラシュ

私はこれがかなり遅いことを知っています。ただし、facebookやその他のプロバイダーは、ログイン時に更新トークン、アクセストークン、および有効期限(アクセストークン用)を発行します。アクセストークンは短命であり、更新トークンを使用して新しいアクセストークンを生成できます。次のログインで新しい更新トークンを作成して、古い更新トークンを無効にすることができます
-Cerlin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.