【问题标题】:Scalatra authenticationScalatra 身份验证
【发布时间】:2014-08-30 15:15:06
【问题描述】:

我正在阅读 scalatra authentication tutorial

基于数据库 AuthenticationSupport trait 编写了我自己的身份验证策略,将basicAuth() 添加到控制器,现在授权工作。但我还是不明白,我怎样才能从会话中输入和获取用户ID,我应该如何使用toSessionfromSession 方法:

protected def fromSession = { case id: String => AuthUser(id) }
protected def toSession   = { case usr: AuthUser => usr.id }

【问题讨论】:

    标签: scala scalatra


    【解决方案1】:

    我在我的博客 (obligatory link) 上写了一篇关于 Scentry 的详细介绍。要回答您的具体问题,请不要担心会话,这是由 Scentry 为您处理的,至少在默认情况下是这样。如果您愿意,当然可以覆盖它。

    将 fromSession/toSession 视为 scalatra 为您将用户添加到会话和如何获取用户之间的连接。 fromSession 给你一个 ID 并说“给我一个用户记录”。你可以做任何你需要处理的事情,访问数据库,访问网络服务,等等。 toSession 是相反的,它基本上说'我有这个你从会话交给我的用户对象,我如何取回 ID?'。同样的事情,无论您需要做什么来将用户转换为 ID。

    更具体而言,您可以将这些视为:

    fromSession: String => A
    toSession: A => String
    

    其中 String 是您的 ID,A 是您的用户对象。一旦你把它们连接起来,userisAuthenticated 等就可以在你的 servlet 中工作(tm)。

    希望有帮助!

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-02
    • 2018-02-24
    • 2015-04-29
    • 2010-10-05
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    相关资源
    最近更新 更多