4

現在、Devise を使用した Rails アプリを使用しており、ブラウザからログインできます。この Rails アプリをバックエンドとして使用するネイティブ iPhone アプリケーションを作成したいと考えています。私が欲しいもの:

  • ユーザーが初めて iOS アプリを開くと、ログイン画面が表示されます。
  • 情報を入力すると、アプリはログインを試みます。成功すると、Rails アプリのユーザーが一覧表示されます (今のところ)。そうしないと、不正なログインと表示されます。
  • 次に、ユーザーがユーザーの名前をクリックすると、ユーザーのプロファイルなどが表示されます。アプリは、サイト自体にあるかのように、すべての CRUD 操作を実行できる必要があります。

現在、iPhoneアプリにはDeviseとRestKitを使用しています。Rails アプリで http_auth を有効にすると、ユーザー名/パスワードを設定し、/users ページ (JSON でユーザーを一覧表示) から応答を返すことができます。

レール:

class UsersController < ApplicationController

before_filter :authenticate_user!

def index
    @users = User.all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @users }
    end
end

end

iPhone (Restkit を使用):

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    RKClient *client = [RKClient clientWithBaseURL:@"http://192.168.1.105:3000" username:@"xxxx" password:@"xxxx"];

    [[RKClient sharedClient] get:@"/users.json" delegate:self];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)request:(RKRequest*)request didFailLoadWithError:(NSError *)error {
    NSLog(@"error");
}

- (void)request:(RKRequest*)request didLoadResponse:(RKResponse*)response {
    NSLog(response.bodyAsString);
}

ここから何をすべきか、どのようにアプローチするかはわかりません。

  1. ログイン画面の処理方法を教えてください。わかりました、http 基本認証を使用して 'http://localhost:3000' GET を実行し、ユーザー リストを取得できますが、ユーザーの資格情報が正しく入力されているかどうかをテストする方法はありますか? ログインに対して OK または NOT OK の応答を返す方法はありますか?
  2. Railsアプリとやり取りするための最良の方法は何ですか? RestKit を使用して GET /users/2 などを実行しても問題ありませんか? それとも、ある種の API を構築する必要がありますか? このようなことをどこから始めればよいかわかりません。
4

1 に答える 1

0

デバイスがあるのに、なぜ基本的な http 認証を使用するのですか? Devise を使用すると、json ハッシュで認証エラーを返し、ログイン画面に表示できます。

アプリを従来の REST 方法で構築すると、Web クライアントとモバイル クライアントの両方にとって非常に快適になります。

Rabl https://github.com/nesquena/rablのようなものを使用して、Rails アプリでスマート JSON API を構築することもできます。

于 2012-10-08T18:36:02.987 に答える