Je viens de commencer l'ajout d'une API REST sur une application de rails, et que je ne voulais exposer un contrôleur couple/actions, j'ai ajouté une méthode pour ApplicationController:Est-ce une approche raisonnable pour l'authentification HTTP BASIC avec une clé API?
def http_basic_authentication
if request.format == Mime::XML
authenticate_or_request_with_http_basic do |username, api_key|
self.current_user = User.find(:first, :from => 'users, accounts', :conditions => ["accounts.id = users.account_id AND accounts.api_key = ?", api_key])
end
end
end
Ce que je peux alors utiliser avec un before_filter sur mon contrôleur individuel/actions que je veux exposer. Quelqu'un a-t-il des commentaires, une révision de code ou une meilleure approche?
Cela fonctionnerait s'il n'y avait pas plus d'un utilisateur par compte. Plutôt que de faire partie de l'API Key du modèle User, cela fait partie du modèle Account, et quand quelqu'un s'authentifie, ce sera avec son nom d'utilisateur et account.api_key. Donc, je ne suis pas sûr que le vôtre serait vraiment utile. –