首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scalatra认证

Scalatra认证
EN

Stack Overflow用户
提问于 2014-08-30 15:15:06
回答 1查看 820关注 0票数 1

我在读认证教程

写了我自己的基于DB的auth策略,AuthenticationSupport特性,添加了basicAuth()到控制器,现在授权工作。但我仍然无法理解,如何从会话中放置和获取用户id,以及如何使用toSessionfromSession方法:

代码语言:javascript
复制
protected def fromSession = { case id: String => AuthUser(id) }
protected def toSession   = { case usr: AuthUser => usr.id }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-05 17:25:26

我在我的博客(强制性环节)上写了一篇关于Scentry的详细文章。要回答您的具体问题,不要担心会话,这是由Scentry为您处理的,至少在默认情况下是这样。如果你有这种倾向,你当然可以推翻它。

将fromSession/toSession看作是scalatra为将用户添加到会话所做的事情与如何获得用户之间的连接。fromSession给你一个ID,并说‘给我一个用户记录’。你可以做任何你需要处理的事情,访问一个数据库,点击一个网络服务,什么的。toSession正好相反,它基本上是说‘我在fromSession中有一个用户对象,我如何获得ID?’同样的事情,无论您需要做什么工作来将用户转换为ID。

从更具体的角度来说,你可以认为这些是:

代码语言:javascript
复制
fromSession: String => A
toSession: A => String

其中字符串是您的ID,而A是您的用户对象。一旦将这些连接起来,userisAuthenticated等只需在servlet中工作(Tm)。

希望这能帮上忙!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25583831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档