2014-06-21 1 views
-1

레일 4에서 웹 응용 프로그램의 API에 대한 로그인 기능을 수행하고 있습니다. 아이디어는 JSON과 함께 JSON을 보내는 Android 앱에서 로그인 할 수있게하는 것입니다. 사용자 이름과 password_digest.JSON API에서 params를 가져 오지 못함 Rails 4 App에서 요청

class ApiController < ApplicationController 
#respond_to :json 
before_filter :restrict_access, except: :login 
protect_from_forgery except: [:login, :new_ticket] 

##========================================================================== 
# /api/login/:username/:password_digest 
##========================================================================== 
def login 
    @user = User.find_by_username(login_params[:username]) 

    if not @user 
     user_not_found = 'No existe este usuario' 
     render json: {error: true, message: user_not_found}, status: 404 
     return 
    elsif not @user.authenticate(login_params[:password_digest]) 
     wrong_password = 'Contraseña incorrecta' 
     render json: {error: true, message: wrong_password}, status: 400 
    else 
     access_token = @user.api_key.access_token 
     render json: {access_token: access_token, authenticated: true} 
    end 
end 

##========================================================================== 
# /api/users/:access_token/ 
##========================================================================== 

def users 
    @users = User.all 
    render json: (@users.map { |u| u.as_json(except: :password) }).to_json 
end 

private 
def restrict_access 
    api_key = ApiKey.find_by_access_token(params[:access_token]) 
    head :unauthorized unless api_key 
end 

def login_params 
    params.permit(:username, :password_digest) 
end 


end 

내가 사용자 이름과 POST 요청을하고 password_digest하지만 login_params에서 {} 얻고있어 :

이 내 api_controller입니다. 왜? 감사!

편집 : 그리고 이것은 내 경로의 정의입니다

scope 'api' do 
    post '/login', to: 'api#login' 
    get '/users/:access_token', to: 'api#users' 
end 

답변

0

신경 끄시 컬하지만 크롬 플러그인 "고급 나머지 클라이언트"로 사용하는 경우, 매개 변수는 작업

관련 문제