Sto usando il gioco 1.2.7 per creare la funzionalità di accesso e disconnessione, quando l'accesso utente creerò la sessione per lui, utilizzando l'oggetto di sessione, il mio problema è una volta che ho fatto il logout che reindirizzerà alla pagina di accesso ma quando il clic del browser farà clic sul pulsante indietro la pagina verrà aggiornata e di nuovo che accederà
Questo è il mio codice durante l'accesso dell'utente.
public static void login() throws Throwable {
Http.Cookie remember = request.cookies.get("rememberme");
if(remember != null) {
int firstIndex = remember.value.indexOf("-");
int lastIndex = remember.value.lastIndexOf("-");
if (lastIndex > firstIndex) {
String sign = remember.value.substring(0, firstIndex);
String restOfCookie = remember.value.substring(firstIndex + 1);
String username = remember.value.substring(firstIndex + 1, lastIndex);
String time = remember.value.substring(lastIndex + 1);
Date expirationDate = new Date(Long.parseLong(time)); // surround with try/catch?
Date now = new Date();
if (expirationDate == null || expirationDate.before(now)) {
logout();
}
if(Crypto.sign(restOfCookie).equals(sign)) {
session.put("username", username);
redirectToOriginalURL();
}
}
}
flash.keep("url");
render();
}
E questo è il mio codice di disconnessione quando l'utente è in uscita:
public static void logout() throws Throwable {
Security.invoke("onDisconnect");
session.clear();
response.removeCookie("rememberme");
Security.invoke("onDisconnected");
flash.success("secure.logout");
login();
}
Per favore, salvami da questo problema come risolvere questo problema. Grazie in anticipo.
risposte:
1 per risposta № 1Usare il modulo sicuro è la strada da percorrere: http://www.playframework.com/documentation/1.2/secure.
Solo FYI, ci sono moduli che estendono il modulo sicuro e supportano l'autorizzazione basata sui ruoli:
- http://www.playframework.com/modules/deadbolt
- https://github.com/greenlaw110/play-aaa (Al momento il modello supporta solo mongoDB, ma non è difficile implementare la versione di sql) ** Esiste un'app demo per giocare aaa: https://github.com/greenlaw110/play-aaa-demo/tree/greenl