gpt4 book ai didi

scala - 使用 Play 2 框架的基于 token 的身份验证

转载 作者:行者123 更新时间:2023-12-04 06:38:10 25 4
gpt4 key购买 nike

我正在 Scala 中使用 Play Framework 2 构建应用程序。它将纯粹是 RESTful 的,此时调用是从 Javascript 单页应用程序进行的。

集成基于 token 的身份验证的最佳方法是什么? Play2 有多个身份验证库,还有原始的 Secured trait,但不清楚哪一个最方便。

感谢您的帮助和建议

最佳答案

如果您在说“基于 token ”时指的是 JWT,您可能需要查看 this example在 Play2 中实现 HTTP 基本身份验证,以及 this answer回复:如何在 Scala 后端实现 JWT。好的部分是您既不需要 cookie,也不需要经过身份验证的用户的缓存。

为方便起见,包括第一个链接中的内容:

def Secured[A](username: String, password: String)(action: Action[A]) = Action(action.parser) { request =>
request.headers.get("Authorization").flatMap { authorization =>
authorization.split(" ").drop(1).headOption.filter { encoded =>
new String(org.apache.commons.codec.binary.Base64.decodeBase64(encoded.getBytes)).split(":").toList match {
case u :: p :: Nil if u == username && password == p => true
case _ => false
}
}.map(_ => action(request))
}.getOrElse {
Unauthorized.withHeaders("WWW-Authenticate" -> """Basic realm="Secured"""")
}
}

使用方法如下:
def myAction = Secured("admin", "1234secret") {
Action { request =>
Ok
}
}

关于scala - 使用 Play 2 框架的基于 token 的身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22154977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com