Я пытаюсь преобразовать идентификатор пользователя из класса User и сохранить его в Play! переменная сеанса. Однако, когда я пытаюсь распечатать эту переменную сеанса, она возвращает пустую строку. Это простая проверка подлинности.Преобразование Scala long в строковые отпечатки
Во время аутентификации:
session += "userid" -> user.id.toString
Печать сессии переменная Play! Скала вид:
@ctx("userid")
Вся аутентификация Защита:
def authenticate(login:LoginAttempt) = {
println("in authenticate")
User.authenticate(login.username, login.password) match {
case Some(user:User) => {
session += "username" -> user.emailAddress
session += "userid" -> user.id.toString
session += "name" -> user.name
session += "accounts" -> user.accounts.toString
Redirect(session("path").getOrElse("/"))
}
case _ => {
flash += "error" -> "Wrong username or password."
Action(Authentication.login)
}
}
}
И класс User:
case class User(
val id: Long,
раствор? Что пропало или происходит неправильно здесь, что предотвращает хранение user.id
в сеансе? Спасибо
Даже если я уверен, что вы проверили все перед публикацией здесь, это, по-видимому, ошибка инициализации: вы инициализировали сеанс? id вы инициализируете пользователя перед его использованием? В противном случае я не вижу, что изменилось бы с помощью 'Long' vs a String' –
Исправлены обе инициализированы, и я могу проверить, что у bc у меня есть доступ к строкам, таким как имя пользователя, которое я сохранил в сеансе. Мое единственное другое предположение - я не хватает «функции» игры! сессионные вары. – crockpotveggies
На самом деле у меня в настоящее время проблема с тем же заказом с liftweb, однако она работает с 'SessionVar', но не с' RequestVar'. –