1

Я разрабатываю систему API в Ruby-on-Rails, и я хочу иметь возможность регистрировать запросы и проверять подлинность пользователей.Рубиновые способы аутентификации с использованием заголовков?

Однако у меня нет традиционной системы входа в систему, я хочу использовать APIkey и подпись, которую пользователи могут отправлять в заголовках HTTP в запросе. (Подобно тому, как работают службы Амазонки)

Вместо запроса /users/12345/photos/create я хочу, чтобы иметь возможность запросить /photos/create и представить заголовок, который говорит X-APIKey: 12345 и затем подтвердить запрос с подписью.

Есть ли какие-либо драгоценные камни, которые можно адаптировать для этого? Или еще лучше, какие драгоценности, которые делают это без адаптации?

Или вы считаете, что было бы разумнее просто отправить им ключ API в каждом запросе с использованием валиков POST/GET?

ответ

1

Возможно, вы уже используете библиотеку аутентификации. Вероятно, это способ переопределить способ проверки подлинности. Скорее всего, этот метод называется authenticated?. Однако обратитесь к документации для библиотеки, которую вы используете.

Я бы не искал существующий драгоценный камень, но сам реализовал его; делать это не должно быть слишком сложно. Вот пример реализации шаблонного:

class ApplicationController < ActionController::Base 
    def authenticated? 
    current_user.is_a?(User) 
    end 

    def current_user 
    user_from_session || user_from_api_key 
    end 

    def user_from_session 
    # ... use session[:user] or whatever. 
    end 

    def user_from_api_key 
    User.find_by_api_key(request.headers["X-APIKey"]) 
    end 
end 

Это настолько специфичны, насколько я могу получить, так как вы ничего о вашей текущей настройки аутентификации не говорят.

+0

Я столкнулся с http://www.compulsivoco.com/2009/05/rails-api-authentication-using-restful-authentication/, который в дополнение к образцу кода Августа поможет вам справиться – Alistair

 Смежные вопросы

  • Нет связанных вопросов^_^