0

У меня есть приложение, которое имеет аутентификацию пользователя с помощью Devise и Authy, и я хочу добавить API-интерфейс с отдельным набором пользователей в модели (ApiUser), на данный момент просто используя Basic Аутентификация. У меня есть следующий код в моем контроллере:HTTP Basic Auth in Rails при отключении другой аутентификации

class Api::SomethingsController < ApplicationController 
    load_and_authorize_resource param_method: :something_params   
    skip_authorize_resource    
    skip_authorization_check   
    skip_before_filter :verify_authenticity_token 
    skip_before_action :authenticate_user!   
    skip_before_action :enable_authy 

    before_filter :api_authenticate  

    private  
    def api_authenticate 
    authenticate_with_http_basic do |userid, password|  
     user = ApiUser.find_by(userid: userid, passwd: password)  
     user 
    end  
    end   

Однако аутентификация не делаются - я получаю результаты без аутентификации на всех.

Что я делаю неправильно?

ответ

0

Вместо этого использовать authenticate_or_request_with_http_basic.

def api_authenticate 
    authenticate_or_request_with_http_basic("Somethings Authentication") do |userid, password|  
     user = ApiUser.find_by(userid: userid, passwd: password)  
     user 
    end  
end 
+0

Работы - спасибо! –