Yii Framework Forum: Обновить Данные Авторизованного Юзера - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Обновить Данные Авторизованного Юзера CAuthManager Rate Topic: -----

#1 User is offline   Ivan1 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 08-November 13

Posted 08 November 2013 - 05:49 AM

Всем привет!

Стандартная авторизация через CAuthManager, после авторизации данные юзера хранятся в cookie.

К примеру я в админке меняю данные юзеру, но у него они не обновятся пока он не выйдет и заново не авторизируется.

Вопрос: как сделать чтобы он увидел новые данные?
0

#2 User is offline   andy_s 

  • Random Member Title
  • Yii
  • Group: Moderators
  • Posts: 1,526
  • Joined: 22-June 09
  • Location:Russia, Kostroma

Posted 08 November 2013 - 07:16 AM

Либо каждый раз (или иногда) при посещении пользователем страниц сайта обновлять куки, либо (если это какие-то важные изменения) уведомлять его и просить перелогиниться. Вообще вопрос интересный :)
0

#3 User is offline   Ivan1 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 08-November 13

Posted 08 November 2013 - 07:44 AM

View Postandy_s, on 08 November 2013 - 07:16 AM, said:

Либо каждый раз (или иногда) при посещении пользователем страниц сайта обновлять куки, либо (если это какие-то важные изменения) уведомлять его и просить перелогиниться. Вообще вопрос интересный :)


Думаю так же:
если юзер авторизирован то каждый раз при обновлении страницу брать данные из БД.

Может есть метод который отрабатывает каждый раз если юзер залогинен? чтобы в нём обновить данные юзера.

P.S про просьбу перелогиниться это уж полный бред...
0

#4 User is offline   ORey 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 1,695
  • Joined: 20-April 09
  • Location:Moscow, Russia

Posted 08 November 2013 - 07:53 AM

В порядке общего бреда:

- Хранить в сессии, отслеживать пользовательские сессии, в случае чего переписывать.
- Хранить в кеше, при обновлении пользователя инвалидировать кеш
- (вообще фанк) Использовать хак с е-тагом
God is real unless declared as integer
0

#5 User is offline   andy_s 

  • Random Member Title
  • Yii
  • Group: Moderators
  • Posts: 1,526
  • Joined: 22-June 09
  • Location:Russia, Kostroma

Posted 08 November 2013 - 08:02 AM

Ну если речь идёт о методах setState()/getState(), то они и так работают с сессией, но с переписыванием будет проблема, если сессии хранятся не в БД.

View PostIvan1, on 08 November 2013 - 07:44 AM, said:

Может есть метод который отрабатывает каждый раз если юзер залогинен? чтобы в нём обновить данные юзера.


Можно попробовать унаследовать класс CWebUser, его метод init() вызывается каждый раз при (первом) обращении к Yii::app()->user.
0

#6 User is offline   Mihail 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 107
  • Joined: 29-June 13

Posted 08 November 2013 - 10:04 AM

Более простым способом на мой взгляд хранить в сессии или в куки только индентификатор пользователя а все доп данные подтягивать на основе этого идентификатора.

Но если нужен велосипед то конечно лучше всего хранить просто валидность данных в кэше (идентификатор кэша создать на основе идентификатора пользователя) если не валиден то перегрузить данные при редактировании просто удалить кэш.

по поводу переписвания данных сесии счетаю глупой и сложной затей, зачем менять когда можно просто полностью перегрузить и всё правильно встанет.
Быстро ссылки:
Yii - http://www.yiiframework.com/download/
Полное руководство по Yii - http://www.yiiframew...de/1.1/ru/index
Class Reference - http://www.yiiframework.com/doc/api/
Расширения - http://www.yiiframew...com/extensions/
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users