4

我尝试搜索有关此主题的示例和答案,但似乎都更具体或与我的问题不完全相关。我是 Rails 的新手,也是一名中级 iOS 开发人员。我希望使用 Rails 作为后端来驱动基于用户登录的应用程序。我试图找到如何使用 AFHTTPClient 对设计进行身份验证的示例代码,但没有成功。我正在使用的 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 与活动#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 回答