-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