/ / Sinatra - Tlačidlo Odhlásiť funguje, ale po stlačení späť v prehliadači sa stále zobrazuje prihlásená stránka? - rubín, relácia, sinatra, odhlásenie

Sinatra - tlačidlo Odhlásiť funguje, ale keď stlačíte späť v prehliadači je stále zobrazuje prihlásený stránku? - rubín, sedenie, sinatra, odhlásenie

Odhlasujem sa pomocou odkazu na ovládač odhlásenia, ako je uvedené nižšie

get "/logout" do
protected!
session[:id]=nil
redirect back
end

protected! je pomocná metóda:

def protected!
redirect "/login" if session[:id] == nil
end

Keď kliknem na tlačidlo odhlásenia, stránka sa odhlási a zobrazí prihlasovaciu stránku podľa očakávania. ALE keď kliknem späť na prehliadač, zobrazí sa stránka [ktorá vyžaduje reláciu], keď by nemala byť.

Relácia bola nastavená na nulu /logout a všetky stránky vyžadujúce reláciu by sa nemali zobrazovať. Existuje keška alebo iná relácia, ktorú musím zničiť?

odpovede:

2 pre odpoveď č. 1

Znie to, akoby vám bol doručený zastaraný obsah z medzipamäte prehliadača.

V závislosti od prehliadača a jeho nakonfigurovaných nastavení, pokiaľ nie je uvedené inak (napr. S hlavičkou Cache-Control), použije prehliadač po stlačení tlačidla späť miestnu vyrovnávaciu pamäť.

Môžete použiť pomocníka nástroja cache_control od spoločnosti Sinatra: http://www.rubydoc.info/github/sinatra/sinatra/Sinatra%2FHelpers%3Acache_control

niektorí viac info tu (v časti „Ovládanie vyrovnávacej pamäte“) a ak máte záujem, tu je príslušný RFC