L'applicazione su cui sto lavorando al momento ha un valore di timeout della sessione. Se l'utente non ha interagito più a lungo di questo valore, la pagina successiva provano a caricare, verrà richiesto di effettuare il login.HTTP 401: cos'è un valore di intestazione Autenticato WWW appropriato?
Tutte le richieste effettuate vengono instradate attraverso questo meccanismo, che include le chiamate AJAX. Inizialmente stavamo inviando un'intestazione 200 con la pagina di accesso, che introduce alcuni problemi con AJAX poiché il codice viene eseguito se viene inviata una risposta 200 e la maggior parte dei dati inviati da queste chiamate RPC è JSON o JavaScript non formattato che viene valutato (non chiedere: |).
Ho suggerito che un 401 è migliore, dal momento che il nostro parser JSON non cercherà di consumare una pagina di login HTML .. :)
Quando reading the spec, però, ho notato che il campo WWW-Authenticate
deve anche essere inviato.
Qual è un buon valore per questo campo? Sarà sufficiente il Application Login
?
Grazie compagno, ora sto usando un 403, invece, dato che non è un reindirizzamento e include letteralmente il modulo di login al posto della pagina originale. Inoltre, si adatta meglio alle specifiche W3. Grazie per l'informazione comunque. –
Vedere questa risposta su come è ancora possibile utilizzare HTTP 401: http://stackoverflow.com/questions/928874/how-do-i-keep-firefox-from-prompting-for-username-password-with-http-basic -auth/19102200 # 19102200 – lanoxx
Sì, ho appena inserito qualcosa nell'intestazione dell'autenticazione WWW, suppongo. Un'altra risposta simile è http://stackoverflow.com/a/1088127/689161 O semplicemente violare le specifiche e non disturbare l'invio dell'intestazione (almeno alcuni siti lo fanno); 401 è ancora più appropriato di 403. – gengkev