Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Объясните как поддерживать сессию (https://javascript.ru/forum/css-html/42188-obyasnite-kak-podderzhivat-sessiyu.html)

assd18 16.10.2013 15:10

Объясните как поддерживать сессию
 
Здравствуйте. Юзер ввел логин пароль отправил по аяксу, с сервера пришел success, юзер залогинен. Вот, есть залогиненый юзер.
Теперь при переходе на другую страницу нужно опять отправлять запрос или как вообще это реализуется? Как можно реализовать поддержку сессии? Где можно почитать?
Заранее спасибо)

ksa 16.10.2013 15:14

Цитата:

Сообщение от assd18
Как можно реализовать поддержку сессии?

Ее "реализовывает" "серверная часть"... Программер лишь можер писать в сессию данные, либо их читать.

Цитата:

Сообщение от assd18
Где можно почитать?

В документации или учебниках по твоему серверному языку...

Т.е. твой вопрос вообще не в этот раздел (Javascript под браузер). :no:

assd18 16.10.2013 15:26

Ее "реализовывает" "серверная часть"... - это понятно, я имел ввиду, чтобы узнавать, что юзер уже залогинен - нужно слать запрос (понял что думал неправильно), значить писать ади сессии в переменную или может куки. Как вытаскивать айди сессии и вообще как это реализуют, может есть ссылки на статьи?

ksa 16.10.2013 15:41

Цитата:

Сообщение от assd18
значить писать ади сессии в переменную или может куки

:blink:

Цитата:

Сообщение от assd18
Как вытаскивать айди сессии и вообще как это реализуют

У каждого языка свой синтаксис...

Цитата:

Сообщение от assd18
может есть ссылки на статьи?

Разумеется!
Только ты так и не удосужился написать какой у тебя серверный язук... :)

assd18 16.10.2013 15:47

Сервер на джаве, от меня требуется послать запрос на аутентификацию и поддерживать юзера залогиненым.

ksa 16.10.2013 15:49

Цитата:

Сообщение от assd18
Сервер на джаве

Вот и читай доку по той джаве... Есть сайты по этому языку...
"Javascript под браузер" как и собственно Javascript к сессиям ну никаким боком... :no:

ksa 16.10.2013 15:52

Цитата:

Сообщение от ksa
Есть сайты по этому языку

Вот например...
http://www.sql.ru/forum/java

assd18 16.10.2013 15:55

Так фронт отдельно, а бэк отделно. Бэкенд на джаве. Я с помощью jquery ajax отправляю запрос на сервер, он мне возвращает данные в виде json. Так вот как реализовывается поддержка юзера залогиненым на строне фронтэнда?

ksa 16.10.2013 16:00

Цитата:

Сообщение от assd18
Так вот как реализовывается поддержка юзера залогиненым на строне фронтэнда?

Если скрипт как-то узнает от сервера, что пользователь не авторизован - может:
- удалть обработчики событий на ключевых элементах
- может "задисейблить" ключевые элементы
- дать всякого рода сообщения
- сделать редирект куда-либо (только не в твоем случае, ты и так на логине)

В случае удачной авторизации:
- сделать переход на другую страницу
- перечитать эту, открыв новые возможности
- запростить другие данные

assd18 16.10.2013 16:11

Сейчас это все есть. Я так понимаю фронт енд никак не влияет, что отдаст сервер то и мы будем выводить, залогинен или нет юзер. Но как я на фронте знаю, что узер залогинен, допустим перешел он на главную и никакой запрос на сервер не пошел.
Вот какая ситуация у меня. Юзер залогинился, с сервера пришел "ок", я в хтмлл меняю кнопку зологинится на имя самого юзера. Но когда юзер перешел на другую старницу все так же, повляется кнопка логин, а должно ведь имя юзера.
Тоесть мне нужно на каждой странице отправлять запрос залогинен или нет?

ksa 16.10.2013 16:17

Цитата:

Сообщение от assd18
Тоесть мне нужно на каждой странице отправлять запрос залогинен или нет?

У тебя кто формирует те страницы? Или они статичные (хтмл)?

assd18 16.10.2013 16:18

Хтмл, я уже его изменяю если что-то приходит с сервака.

ksa 16.10.2013 16:29

Цитата:

Сообщение от assd18
Хтмл

Тогда всякий раз нужно у сервера спрашивать... Если не авторизован или вышел таймаут сессии - редиректить на страницу регистрации.

assd18 16.10.2013 16:32

Тоесть он первый раз ввел, я записал логин и пароль в куки и при переходе на каждую страницу шлю запрос с его паролем и логином? Как быть со скрытностью пароля?

ksa 16.10.2013 16:40

Цитата:

Сообщение от assd18
я записал логин и пароль в куки

Зачем куки если есть сессион? :blink:

У кук своя жизнь и назначение, а у сессии сое назначение и жизнь.

Цитата:

Сообщение от assd18
на каждую страницу шлю запрос с его паролем и логином?

Просто спрашиваешь "есть ли в сессии отметка об авторизации"?

Цитата:

Сообщение от assd18
Как быть со скрытностью пароля?

Он тебе вообще дальше не нужен... :no:

Сервер должен в сессию записать все, что нужно для этого пользователя...

Но вообще так лучше не делать. :)
Будет сподручнее если серверный язык сам будет влиять на те страницы

ksa 16.10.2013 16:43

Пример на CSP...

В каждую страницу инклюдится
<head>
...
<!--#include virtual="/mvr/inccsp/head/access.csp"-->
...
</head>


такая вставка
<script type="text/javascript">
if ('#($g(%session.Data("access")))#'=='') {
	top.location='#($g(^mvr("mvr"),"/mvr/"))#login.csp'
}
</script>

Если неавторизован... Или истек таймаут сессии... Происходит переход на страничку регистрации.

ksa 16.10.2013 16:46

После генерации страницы будет такой

<script type="text/javascript">
if ('1'=='') {
	top.location='<URL_задачи>login.csp'
}
</script>

Или такой
<script type="text/javascript">
if (''=='') {
	top.location='<URL_задачи>login.csp'
}
</script>

Контент...

ksa 16.10.2013 16:46

Цитата:

Сообщение от assd18
Тоесть посылаю запрос, а он мне в джейсоне тру-фолс?

Можно и так... :yes:

Но мой вариант (с использованием генерации страниц) более удобен.

assd18 16.10.2013 16:50

ок, ясно, разобрался, спасибо)

Basili4 07.11.2013 22:01

>юзер перешел на другую старницу все так же, повляется кнопка логин
у Вас полностью вся страница перестраивается. Поэтому все так и происходит. Или у вас одно страничное приложение но данные о логине пользователя хранятся в объекте который уничтожается


Часовой пояс GMT +3, время: 03:51.