Nano Hash - криптовалюты, майнинг, программирование

Java Play2 — от сеанса до файла cookie

Обновление 1:

Не могли бы вы привести краткий пример того, как управлять файлами cookie и сеансами в play2? (функция «запомнить меня»)

Хорошо, я думаю, что понимаю основную концепцию аутентификации игры.

Zentasks использует сеансы. Я знаю, что сеансы хранятся только на сервере. А сессии в play2 уже подписаны. Куки нет.

Что, если пользователь захочет войти в систему, даже если он закроет браузер?

Мне нужно было бы использовать файл cookie.

Что я должен делать?

Создаю ли я файл cookie, который создает сеанс?

Например

  • у пользователя есть действительный файл cookie
  • получить значение cookie и создать новый сеанс

Или я полностью отбрасываю сеансы и вместо этого использую только файлы cookie. Поскольку файлы cookie не подписываются play2 автоматически, я должен сделать это сам, что я и сделал.

response().setCookie("remember",Crypto.sign(rnd) + "-" + obj.getClass().getName() + "-" + rnd,12000);

(Я знаю, что еще не сделал его безопасным с помощью флага защищенного и только http)

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


  • Извините, здесь нет места ;) Я отредактировал ваш пост. Теперь объясните, пожалуйста, что это значит, что «пользователь хочет куки»? 07.08.2012
  • Зачем просить пользователя о технической реализации? Просто не забудьте создать работающее и отзывчивое приложение! Сеансы BTW всегда управляются файлами cookie: stackoverflow.com/questions/6398715/ 07.08.2012
  • @biesior я отредактировал свой пост. (пользователь хочет куки?) -> (Что, если пользователь хочет войти в систему, даже если он закрывает браузер?) 07.08.2012

Ответы:


1

область сеанса в Play — это не что иное, как подписанный (защищенный) файл cookie (и они хранятся на стороне клиента, не на стороне сервера!)

Из вышеуказанных документов:

Важно понимать, что данные сеанса и флэш-памяти не сохраняются на сервере, а добавляются к каждому последующему HTTP-запросу с использованием файлов cookie.

поэтому вы можете сохранить состояние logged in, проверив, существует ли session scope's key и соответствует ли он любому вашему пользователю.

Де-факто срок действия сеанса не истекает автоматически, поэтому ваш пользователь будет logged in, пока не нажмет на ссылку действия logout (в которой вам нужно просто уничтожить ключ сеанса) (только в некоторых браузерах)

07.08.2012
  • хорошо, спасибо, но если я закрою браузер, моя сессия исчезнет. Как я могу предотвратить это? 07.08.2012
  • @MaikKlein: ты проверял? Я только что тестировал, область сеанса доступна даже после закрытия браузера и очистки всей памяти. Так что лучше побеспокойтесь, как его уничтожить, если понадобится ;) 07.08.2012
  • В самом деле? Я дважды проверил это. Я всегда теряю печенье. Я пробовал IE и хром. Я использовал команду -> play run 07.08.2012
  • @MaikKlein: Действительно, действительно, проверьте этот простой тест: github.com/biesior/test-play- сеанс 07.08.2012
  • Все еще нет. Но сейчас я на своем ноутбуке с Linux. Из любопытства я проверю ваше приложение на своем компьютере. 07.08.2012
  • Нет, он всегда исчезает после закрытия браузера. Я использую play 2.0.2 с обновлением до 2.0.3. 07.08.2012
  • Теперь я вижу, что это зависит от браузера в OS X. Я еще проверю эту тему и дам вам знать, если найду лучший вывод. 07.08.2012
  • Я согласен с @biesior, и ваш файл cookie должен сохраняться, даже если вы закроете браузер. 07.08.2012
  • Извините, @nico_ekito, видимо я ошибся, в документации написано, что время истечения срока действия для области действия сеанса равно сеансу, а это значит, что после закрытия браузера он должен быть уничтожен. К сожалению, один браузер на моем Mac уничтожает его, другой сохраняет сеанс даже после перезапуска приложения и браузера. Мишмаш. У меня нет времени искать способ, как убедиться, что сеанс будет уничтожен. Время занято, надеюсь, в ближайшие дни обращусь к этой теме 07.08.2012
  • Atm Я использую файл cookie для создания действительного сеанса. Но это не кажется правильным. :) 08.08.2012
  • @MaikKlein Я просто сижу и читаю: groups.google. com/forum/#!msg/play-framework/JkXNz1mbvZE/ - там Гийом написал, это правильно :) 08.08.2012
  • @biesior последние версии Chrome сохраняют файлы cookie сеанса между сеансами :( code .google.com/p/chromium/issues/detail?id=128513 08.08.2012
  • @biesor Он говорит, что для «Запомнить меня» используйте свой собственный файл cookie, а не сеансовый. Хорошо, это означает, что я должен использовать только файлы cookie и не использовать сеансы. Блин, я уже получил это вчера, теперь у меня есть куки + сеансы. 08.08.2012
  • Не могли бы вы привести краткий пример того, как управлять файлами cookie и сеансами в play2? (функция «запомнить меня») 05.09.2012

  • 2

    Это мне очень помогло

    http://bazaar.launchpad.net/~opensource21/permsec/trunk/view/head:/psec/app

    06.09.2012
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..


    © 2024 nano-hash.ru, Nano Hash - криптовалюты, майнинг, программирование