Art*_*ler 8 authentication rest scala playframework http-token-authentication
我在Scala中使用Play Framework 2建立一个应用程序.它将纯粹是RESTful,目前从Javascript单页面应用程序调用.
什么是集成基于令牌的身份验证的最佳方式?Play2有多个身份验证库,加上原始Secured特征,但不清楚哪一个最方便.
感谢您的帮助和建议
如果你在说"基于令牌"时引用JWT,你可能想看一下在Play2中实现HTTP基本身份验证的这个例子,这个答案是:如何在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"""")
}
}
Run Code Online (Sandbox Code Playgroud)
使用方法如下:
def myAction = Secured("admin", "1234secret") {
Action { request =>
Ok
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7466 次 |
| 最近记录: |