【发布时间】:2017-07-30 23:09:23
【问题描述】:
我正在关注游戏框架和动作组合的文档。我的操作会检查当前会话以查看用户是否存在,如果存在则返回 UserRequest,如果不存在,我想创建来宾用户,将它们存储在请求的会话中并返回带有更新会话的 UserRequest。
class UserRequest[A](val email: String, request: Request[A]) extends WrappedRequest[A](request)
class UserAction @Inject()(val parser: BodyParsers.Default, dbConfigProvider: DatabaseConfigProvider)(implicit val executionContext: ExecutionContext)
extends ActionBuilder[UserRequest, AnyContent] with ActionTransformer[Request, UserRequest] {
val userRepo = new UserRepository(dbConfigProvider)(executionContext)
def transform[A](request: Request[A]) = {
request.session.get("user") match {
case None => createGuestUser(SecureRandomUtil.generateSecureRandom(24)).map { u =>
new UserRequest(u.email, request.withSession("user"->u.email))
}
case Some(email) => Future.successful(new UserRequest(email, request))
}
}
但是 withSession 不是请求对象上定义的方法。有没有办法修改请求对象上的会话?
【问题讨论】:
标签: scala playframework