2012-06-05 3 views
0

я пытался использовать следующий учебник для аутентификации рельсы апи с помощью JSon & Аякса: http://jessehowarth.com/deviseАутентификация устройства Ajax не работает?

это не похоже на работу, но независимо от того, что логин-учетные данные я ввести (существующие и несуществующие), он терпит неудачу каждый раз я Нажмите.

я сделать запрос, используя node.js

var post_data = querystring.stringify({ 
     'email' : '[email protected]', 
     'password': 'foo', 
     'remember_me': 1 
    }); 

    var options = { 
    host: 'localhost', 
    path: '/users/sign_in.json', 
    port: '3000', 
    method: 'POST' 
    }; 

    callback = function(response) { 
    var str = ''; 
    response.on('data', function (chunk) { 
     str += chunk; 
    }); 

    response.on('end', function() { 
     console.log(str); 
    }); 
    } 

    var req = http.request(options, callback); 
    req.write(post_data); 
    req.end(); 

мой контроллер Разрабатывают-сессия выглядит следующим образом:

class SessionsController < Devise::SessionsController 

    def create 
    respond_to do |format| 
     format.html{ super } 
     format.json do 
     resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#failure") 
     return sign_in_and_redirect(resource_name, resource) 
     end 
    end 
    end 

    def sign_in_and_redirect(resource_or_scope, resource=nil) 
    scope = Devise::Mapping.find_scope!(resource_or_scope) 
    resource ||= resource_or_scope 
    sign_in(scope, resource) unless warden.user(scope) == resource 
    respond_to do |format| 
     format.json {render :json => {:success => true, :redirect => stored_location_for(scope) || after_sign_in_path_for(resource)}} 
     format.html {redirect_to root_url} 
    end 
    end 

    def failure 
    respond_to do |format| 
     format.json { render:json => {:success => false, :errors => ["Login failed."]} } 
    end 
    end 

end 

выход я получаю:

{"success":false,"errors":["Login failed."]} 

любой советы по этому поводу?

спасибо!

ответ

0

Хорошо, на самом деле это была моя ошибка. но если кто-то так же глупо, как и я:

I используются параметры email, password и remember_me вместо user[email], user[password] и user[remember_me] ...

Решено!