ログインが必要なアプリということは、ログイン後にユーザに紐付いたデータを取得する通信をアプリとサーバで通信を行いますよね?今のままだと、ログイン後にアプリからサーバへ投げるリクエストに付加することができる情報はidかパスワードくらいで、毎回毎回それを投げてユーザが正しいかどうか判断する事になると思いますが、それでよいですか?
例えばログイン後にユーザの情報を受け取るリクエストがこんなかんじのものだったとします。
http://example.com/status?id=XXX&password=YYY
これだとアプリが起動している間、常にメモリ上に常にパスワードを維持しなければならないので、あまり良くないと思います。
こういう「ログイン」という行為は、たいていログイン成功時にアクセス用のトークンと呼ばれるものをサーバ側で発行し、アプリに返すのが常套だと思います。ログイン後はそのトークンを用いてサーバへリクエストを投げます。サーバ側はそのトークンが有効であるかどうかを判断し、問題がなければ正常なレスポンスを、問題があればエラーを返すことで、不正なアクセスを防止できます。
http://example.com/status&token=XXXXXXX
トークンには有効期限、アクセス元制限をかけることで、他者にトークンが漏洩しても外部から不正にアクセスすることを防ぐ仕組みを設けることができます。(もちろんその実装は自分次第ですが)
ログアウト時に、サーバへ該当のトークンを破棄する処理を実行すればなおよしです。アプリが強制終了してログアウトできなかったときも、有効期限が切れればそのトークンは無効になるので大丈夫です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/25 03:54