2010-08-28 7 views
3

Je veux créer un WebService en Ruby (Sinatra, Padrino, peut-être Ramaze ... je ne sais pas encore ...), mais je veux absolument le sécuriser ...Warden vs Rack :: Auth :: Basique. Faire HTTP-Basic-Auth dans Ruby-Framework

Ce sera le backeend pour une Iphone-App, donc je pense que HTTP-Secure-SSL-Auth sera bien.

J'ai regardé autour de plusieurs cadres d'authentification et suis tombé sur le directeur ... Semble être assez bien documenté, et concevoir est construit sur le dessus ... Donc, ne peut pas être si mauvais ...

Mais ... seemd pour moi un petit peu exagéré, pour ce que je dois ...

Je trouve ce code-Snipplet:

def protected! 
    unless authorized? 
     response['WWW-Authenticate'] = %(Basic realm="Testing HTTP Auth") 
     throw(:halt, [401, "Not authorized\n"]) 
    end 
    end 

    def authorized? 
    @auth ||= Rack::Auth::Basic::Request.new(request.env) 
    @auth.provided? && @auth.basic? && @auth.credentials && @auth.credentials == ['admin', 'admin'] 
    end 

Attend si je ne pas besoin plus que cet atm ... Ou pouvez-vous l'un de vous les gars pro Voyez un bel exemple de gardien + HTTP-Basic Auth? Ou expliquez-moi plus d'avantages d'utiliser le gardien?

Merci d'avance !!! :)

Répondre

5

Pas complètement sûr de ce que vous essayez d'atteindre ici. Cependant, nous avons une application Rails où nous utilisons Warden (+ devise) combiné avec HTTP-Basic-Auth en utilisant le middleware pour cacher notre instance de transfert. C'est ce que nous mettons dans config/environnements/staging.rb:

config.middleware.insert_after(::Rack::Lock, "::Rack::Auth::Basic", "Not for public eyes") do |u, p| 
u == 'admin' && p == 'secret' 
    end 

Cela fonctionne côte à côte avec nos règles d'authentification Warden.

Questions connexes