2015-09-28 8 views
6

Ho un app rotaie con questo controller:In Autenticazione token API Rails, qual è la sezione realm = "Applicazione" dell'intestazione www-Authenticate?

class EpisodesController < ApplicationController 
    before_action :authenticate 

    def index 
    episodes = Episode.all 
    render json: episodes, status: 200 
    end 

    protected 
    def authenticate 
     authenticate_or_request_with_http_token do |token, options| 
     User.find_by(auth_token: token) 
     end 
    end 
end 

Se invio questo ricciolo richiesta, torno questa risposta con queste intestazioni:

$ curl -IH "Authorization: Token token=fake" http://localhost:3000/episodes.json 
HTTP/1.1 401 Unauthorized 
Content-Type: text/html; charset=utf-8 
WWW-Authenticate: Token realm="Application" 

Qual è l'intestazione WWW-Authenticate utilizzato per ? È solo una convenzione? A cosa serve il regno = "domanda"? Ho letto questo:

La parte Token indica che la risorsa data utilizza l'autenticazione del token . La risorsa sotto quell'URI è attualmente parte del dominio "Applicazione" . Il valore di reame consente alle risorse protette di divenire suddivise in diversi set di spazi di protezione, ciascuno con le proprie politiche di accesso personale .

Ma io non capisco ...

risposta

5

L'intestazione WWW-Authenticate deve essere incluso con 401 risposte non autorizzate (vedi HTTP 1.1 RFC) Quindi non è solo una convenzione.

Con il valore è possibile indicare quale meccanismo di autenticazione è supportato (in questo caso Token, un altro schema di autenticazione potrebbe essere Basic per l'autenticazione di base). Il reame può essere impostato su qualsiasi valore desiderato e dovrebbe identificare l'area protetta. In caso di Basic Auth questo valore verrà visualizzato nella finestra di login.

+0

mente upvoting la domanda? – Jwan622

Problemi correlati