JavaScript: Cookies aren't cleared on logout from user page -
i'm using cookies keep user's information present on front end. logging them in happening through passport
.
on login, code sets cookies user's information returned passport
.
on logout, cookies unset , /auth/logout
called log user.
everything works login/logout, whenever try delete cookies on logout, nothing happens.
this occurs on user.js
page of site. able log off other page
here's code:
dynamically setting navbar
document.getelementbyid( 'navigation-bar' ).innerhtml = '<ul>'+ "<li><button onclick='home();' id='home-link'>home</button></li>"+ "<li><a id='recipes-link' href='/recipes'>recipes</a></li>"+ "<li><a id='festivals-link' href='/festivals'>festivals</a></li>"+ "<li><button id='logout-button' onclick='logout()'>logout</button></li>"+ '</ul>';
logout function
function logout() { //sets each cookie's expire time 1970, forcing expire. deletecookies(); //runs passport's 'logout' function window.open( '/auth/logout', '_parent' ); }
setting cookies
function login () { //setting user parameters. let login = { email: null, password: null }; login.email = document.getelementbyid( 'email' ).value; login.password = document.getelementbyid( 'password' ).value; postrequest( '/auth/login', login, 'application/json', ( status, data ) => { if ( status == 200 ) { //set 'expiretime' current date , add 1 hour it. let expiretime = new date( date.now() ); expiretime.sethours( expiretime.gethours() + 1 ); // parse return data. let user = json.parse(data); //set cookie each user key. ( const key in user ) { document.cookie = key + '=' + user[key] + ';expires=' + expiretime.toutcstring() + ";"; } //open user's profile in window using name url. window.open( '/user/' + user.username, '_parent' ); } else { console.log('error'); } }); }
deleting cookies
function deletecookies() { console.log( 'this running' ); //use old date expire cookies let expire = 'expires=thu, 01 jan 1970 00:00:00 gmt;' //split each cookie array element. let cookiesarray = document.cookie.split(";"); //split cookie have name first value. //then use cookie's name expire cookie. ( let cookie = 0; cookie < cookiesarray.length; cookie++ ) { let name = cookiesarray[cookie].split( "=" )[0]; document.cookie = name + "=;" + expire; } }
checking if cookie set
function isloggedin() { //if user logged in, display logout button. if ( getcookie( '_id' ) != '' ) { document.getelementbyid( 'logout-button' ).style.display = 'inline-block'; } }
user.js code
var user = {}; function userready() { getrequest( '/api/me', undefined, ( status, data ) => { if ( status === 200 ) { user = json.parse( data ); document.getelementbyid( 'username' ).innerhtml = "welcome back, " + user.username; } }); }
all appreciated.
Comments
Post a Comment