Как закончить сеанс в Expressjs -- session поле с участием node.js поле с участием express пол Связанный проблема

How to end a session in ExpressJS


89
vote

проблема

русский

Я чувствую, что это должно быть похоронено где-то в документации, но я не могу его найти.

Как вы закрываете или заканчиваются или убивают (что угодно) сеанс в Expressjs?

Английский оригинал

I feel like this has to be buried somewhere in the documentation, but I can't find it.

How do you close or end or kill (whatever) a session in ExpressJS?

</div
        

Список ответов

125
 
vote
vote
Лучший ответ
 

Express 4.x Обновленный ответ

Обработка сеанса больше не встроена в экспресс. Этот ответ относится к стандартной сеансовой модуле: https://github.com/expressjs/session

Чтобы очистить данные сеанса, просто используйте:

 <код> libraryA2  

Документация немного бесполезна на этом. Он говорит:

Уничтожает сеанс, удаление REQ.Session, будет повторно сгенерирован следующий запрос. <Код> libraryA3

Это делает не означает, что текущий сеанс будет загружаться на следующий запрос. Это означает, что в вашем сеансе будет создан чистый пустой сеанс в вашем сеансе. (Предположительно, идентификатор сеанса не меняется, но я не проверял это.)

 

Express 4.x Updated Answer

Session handling is no longer built into Express. This answer refers to the standard session module: https://github.com/expressjs/session

To clear the session data, simply use:

req.session.destroy(); 

The documentation is a bit useless on this. It says:

Destroys the session, removing req.session, will be re-generated next request. req.session.destroy(function(err) { // cannot access session here })

This does not mean that the current session will be re-loaded on the next request. It means that a clean empty session will be created in your session store on next request. (Presumably the session ID isn't changing, but I have not tested that.)

</div
 
 
   
   
94
 
vote

Неважно, это <код> req.session.destroy();

 

Never mind, it's req.session.destroy();

</div
 
 
       
       
25
 
vote

Вопрос не уточнил, какой тип сеанса используется. Оба ответа, кажется, являются правильными.

<Сильные> Для сеансов на основе cookie:

from http://expressjs.com/api.html#cookiesionsion

 <код> req.session = null // Deletes the cookie.   

Для Redis, и т. Д. Сессии на основе и т. Д.:

 <код> req.session.destroy // Deletes the session in the database.   
 

The question didn't clarify what type of session store was being used. Both answers seem to be correct.

For cookie based sessions:

From http://expressjs.com/api.html#cookieSession

req.session = null // Deletes the cookie. 

For Redis, etc based sessions:

req.session.destroy // Deletes the session in the database. 
</div
 
 
 
 
9
 
vote

from http://expressjs.com/api.html#cookiesionsion

Чтобы очистить файл cookie, просто назначьте сеанс до NULL, прежде чем ответить:

 <код> req.session = null   
 

From http://expressjs.com/api.html#cookieSession

To clear a cookie simply assign the session to null before responding:

req.session = null 
</div
 
 
7
 
vote

Использование,

 <код> delete req.session.yoursessionname;   
 

use,

delete req.session.yoursessionname; 
</div
 
 
     
     
6
 
vote

session.destrey (обратный вызов)

Уничтожает сеанс и не будет решать свойство Req.Session. После завершения обратный вызов будет вызван.

↓ <сильный> Безопасный способ ↓ ✅

 <код> req.session.destroy((err) => {   res.redirect('/') // will always fire after session is destroyed })   

Неужели в пути ↓ ❌

 <код> req.logout(); res.redirect('/') // can be called before logout is done   
 

Session.destroy(callback)

Destroys the session and will unset the req.session property. Once complete, the callback will be invoked.

Secure way ↓ ✅

req.session.destroy((err) => {   res.redirect('/') // will always fire after session is destroyed }) 

Unsecure way ↓ ❌

req.logout(); res.redirect('/') // can be called before logout is done 
</div
 
 
5
 
vote

Использование <Код> req.session = null; , на самом деле не удалит экземпляр сеанса. Наиболее правильное решение было бы <Код> req.session.destroy(); , Но это, по сути, обертка для <код> delete req.session; .

https://github.com/expressjs/session/blob/ Master / Session / Session.js

 <код> req.session = null // Deletes the cookie. 0  
 

Using req.session = null;, won't actually delete the session instance. The most proper solution would be req.session.destroy();, but this is essentially a wrapper for delete req.session;.

https://github.com/expressjs/session/blob/master/session/session.js

Session.prototype.destroy = function(fn){   delete this.req.session;   this.req.sessionStore.destroy(this.id, fn);   return this; }; 
</div
 
 
0
 
vote
 <код> req.session = null // Deletes the cookie. 1  

Выше не работал для меня, поэтому я сделал это.

 <код> req.session = null // Deletes the cookie. 2  

, установив истечение срока печенья в текущее время, сеанс истек на свой собственный.

 
req.session.destroy();  

The above did not work for me so I did this.

req.session.cookie.expires = new Date().getTime(); 

By setting the expiration of the cookie to the current time, the session expired on its own.

</div
 
 
-5
 
vote

Как уже упоминалось в нескольких местах, я также не могу получить функцию req.session.destroy () правильно работать.

Это моя работа вокруг .. кажется, что делает трюк и до сих пор позволяет использовать TFLASH

 <код> req.session = null // Deletes the cookie. 3  

Если вы удалите или установите em> req.session = null; , кажется, тогда вы не можете использовать req.flash

 

As mentioned in several places, I'm also not able to get the req.session.destroy() function to work correctly.

This is my work around .. seems to do the trick, and still allows req.flash to be used

req.session = {}; 

If you delete or set req.session = null; , seems then you can't use req.flash

</div
 
 
 
 

Связанный проблема

6  403 Ошибка при использовании Rvest для входа в веб-сайт для соскабливания  ( 403 error when using rvest to log into website for scraping ) 
Я пытаюсь высказать страницу на веб-сайте, который требует входа в систему и в целом получение ошибки 403. Я изменил код из этих 2 сообщений для моего сайта...

0  Проблема кодирования персонажей UTF8  ( Character encoding problem utf8 ) 
Вот мой index.php <код> <?php session_start(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tra...

0  Идентификатор сеанса PHP / изменение вариадировки сеанса, изменяющееся на любой запрос от AXIOS AXIOS / AJAX  ( Php session id session variable value changing on every request from react axi ) 
Я только начал работать с React JS и начал сталкиваться с некоторыми вопросами от некоторых систем клиента. При публикации данных в файл PHP из React JS с пом...

0  Проблема сеанса локального хоста в Chrome после перенаправления с другого сайта  ( Local host session issue in chrome after redirecting from another site ) 
После обновления Google Chrome, обращенные к некоторым вопросам, связанным с Тои одному сайту Cookies и некоторая проблема, связанная с сеансом. У каждой ве...

26  Не могу войти в Magento Admin  ( Cant log in to magento admin ) 
У меня проблемы с проблемами входа в админ-панель Magento на одном из наших мест постановки (он работает на наших серверах WebDev и работал просто отлично не ...

3  Разделите данные сеанса между сайтами?  ( Share session data between sites ) 
Я работаю над многосемы, и я хотел бы разделить данные сеанса между двумя или более сайтами. У меня есть идентификатор сеанса, но какой лучший способ получить...

0  Войдите на внешнюю страницу в браузере с помощью запроса Python  ( Login to external page in browser using a python request ) 
У меня есть WebApp Django и аутентификация через модуль запросов <код> xsl:output2 Это работает нормально. Но как я могу сделать сеанс настойчивым в брау...

0  Приходится перезагрузить страницу для принятия перспективы  ( Have to reload page for if statement to be parsed ) 
Первый: код! <Сильный> <Код> loginform.html <код> <form action="" method="post" id="loginform"> <h3>Login</h3> <input ty...

0  пытаясь получить значение с сеанса  ( Trying to retrieve a value from a session ) 
Я пытаюсь создать новый объект клиента и получить от него значение CID, как это: <код> Line 32: Customer temp = new Customer(); Line 33: tem...

17  Что произойдет, если я забуду отметить Spring SessionStatus как «полный»?  ( What happens if i forget to mark the spring sessionstatus as complete ) 
Весной MVC, предположим, что я определяю sessionattribute, используя тег @sessionattribute, как так: <код> @SessionAttributes(value = "myModel") public clas...

0  Фатальная ошибка: вызов функции элементов num_rows () на не объекте  ( Fatal errorcall to a member function num rows on a non object ) 
Как я сделал проект codeigniter, передал файлы с локального сервера на живой сервер, здесь все кажется правильным, http://royal.skylabsinc.in/ пока пока...

4  Django Mongodb Engine: аутентификация, сеансы ANS User Model  ( Django mongodb engine authentication sessions ans user model ) 
Я новичок в Джанго, а Монгодб, кажется, действительно круто, и у меня есть несколько вопросов ! Я использую Django Nonrel с двигателем Django Mongodb. Я надею...

1  JSP сеанса для каждого IP-адреса или для каждого браузера  ( Jsp session for each ip address or for each browser ) 
<Р> Я хочу знать, создан ли один сеанс для каждого IP-адреса или для каждого экземпляра браузера? <Р> Я открыл мое приложение JSP в трех окнах браузера. Это с...

1  PHP сеанс потерян на одной странице?  ( Php session lost in the same page ) 
Я пытаюсь создать простую страницу поиска в PHP. Страница имеет несколько переменных $ сеансов, которые были переданы с предыдущей страницы. Когда я дости...

1  Моя страница JSP показывает последний вид после записи URL напрямую  ( My jsp page is showing the last view after writing the url directly ) 
Я использую JSF 1.2 для разработки небольшой страницы, которая требует от пользователя в систему. У пользователя может быть одна из трех ролей, и я должен под...

Связанный проблема

6  403 Ошибка при использовании Rvest для входа в веб-сайт для соскабливания 
0  Проблема кодирования персонажей UTF8 
0  Идентификатор сеанса PHP / изменение вариадировки сеанса, изменяющееся на любой запрос от AXIOS AXIOS / AJAX 
0  Проблема сеанса локального хоста в Chrome после перенаправления с другого сайта 
26  Не могу войти в Magento Admin 
3  Разделите данные сеанса между сайтами? 
0  Войдите на внешнюю страницу в браузере с помощью запроса Python 
0  Приходится перезагрузить страницу для принятия перспективы 
0  пытаясь получить значение с сеанса 
17  Что произойдет, если я забуду отметить Spring SessionStatus как «полный»? 
0  Фатальная ошибка: вызов функции элементов num_rows () на не объекте 
4  Django Mongodb Engine: аутентификация, сеансы ANS User Model 
1  JSP сеанса для каждого IP-адреса или для каждого браузера 
1  PHP сеанс потерян на одной странице? 
1  Моя страница JSP показывает последний вид после записи URL напрямую 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.