4

私はこのテーマに関する例と回答を検索しようとしましたが、すべてがより具体的であるか、私の問題に正確に関連していないようでした。私はRailsと中級のiOS開発者にはかなり慣れていません。Railsをバックエンドとして使用して、ユーザーログインベースのアプリを駆動したいと考えています。AFHTTPClientを使用してdeviseで認証する方法のサンプルコードを見つけようとしましたが、成功しませんでした。私が使用しているiOSコードは次のとおりです。

- (IBAction)submitLogin:(id)sender {
    NSString *username = usernameField.text;
    NSString *password = passwordField.text;
    [[AFTestClient sharedClient] setAuthorizationHeaderWithUsername:username password:password];
    [[AFTestClient sharedClient] postPath:@"login/" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
     NSLog(@"Success");

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Failure");
}];
}

これは、Railsで/loginがactivitys#loginに一致するように設定したコントローラーです。

class ActivitiesController < ApplicationController
before_filter :authenticate_user!, :only => [:login, :index]

def login
  @user = current_user
  respond_to do |format|
    format.html {render :text => "#{@user.id}"} 
    format.xml {render :text => "#{@user.id}" }   
  end
end

def index
    @user = current_user
    respond_to do |format|
    format.html {render :text => "Current user is logged in."} 
    format.xml {render :text => "#{@user.id}" }   
    format.json
  end
end
end

認証を必要としない標準のリクエストが通過していることは知っていますが、認証ヘッダーがDeviseなどによって認識されていないと想定しています。

どんな回答でも、特に同じタスクを実行する同様のコードの例をいただければ幸いです。

ありがとう!

4

1 に答える 1

6

Rails アプリの config/initializers/devise.rb で基本的な http 認証を有効にしてみてください。

config.http_authenticatable = true

https://github.com/plataformatec/devise/wiki/How-To:-Use-HTTP-Basic-Authenticationに関する詳細情報があります。

于 2012-11-04T12:24:44.857 に答える