0

私は、ユーザーが当社のWebサイトのアカウントにログインし、データベース内のレコードを表示/追加/編集/削除できる最初のiOSアプリを開発しました。

このようなプロセスを処理する基本的なアプリを作成しました。

アプリの実行が開始されます。

各ViewControllerは、checkAuthメソッド内からメソッドを呼び出しますviewWillAppear。このメソッドは、アプリ内に保存されているユーザー名とパスワードを取得し、リクエストGETの変数としてサーバーに送信します。dataWithContentsOfURL次に、結果JSONがチェックされ、応答が失敗の場合はアラートダイアログが表示され、ユーザーは別のタブ(タブバーコントローラーを使用しています)に移動し、ログインの詳細を入力するように求められます。

このメソッドを使用すると、異なるビューコントローラーが引き継ぐたびに(ストーリーボードファイルの各シーン)、authメソッドが呼び出されます。これは少しもったいないようです。ユーザーのログイン資格情報が正しいことを確認するためのより良い方法はありますか?

ありがとう。

4

3 に答える 3

3

ユーザー名とパスワードをアプリに保存するのは悪い習慣です。バックエンドの変更が自分の管理下にある場合は、バックエンドに対して認証を行い、そのデバイスにのみ有効なトークンを取得することをお勧めします。

ここから、各リクエストとともにトークンを渡します。ログアウトしたとバックエンドが判断した場合は、エラー メッセージが返されます。このようにして、認証はアドホック ベースで、リクエストを送信するときにのみチェックされます。

これに対するビジネス要件がない限り、ビューが読み込まれるたびにそれを行う理由はありません。

于 2012-08-06T16:05:11.570 に答える
3

これに「通信管理」シングルトンを使用しないのはなぜですか? 認証とサーバーとの通信のすべてのタスクを処理し、各コントローラーはサーバーと直接対話せずに通信します。

于 2012-08-06T15:57:39.310 に答える