7

我在使用旧版本指南使用 JWT 身份验证时遇到问题,但我想专注于新的 Play 2.6

根据官方文档,JWT 现在在后台使用。

似乎有一种更简单的方法,而不是创建 ActionBuilder 和一堆其他类或导入第三方库,但我不知道我需要做什么。

谁能给我有关如何使用 2.6 创建 JWT 令牌/秘密的指导?最好是 Java,但我也可以通过 Scala。

4

1 回答 1

5

谁能给我有关如何使用 2.6 创建 JWT 令牌/秘密的指导?最好是 Java,但我也可以通过 Scala。

JWT 被烘焙到会话 cookie 中。你根本不需要为此做任何事情。Play 中没有用户可见的 JWT 标头,但您可以使用 Play 在后台使用的 JJWT 库https://github.com/jwtk/jjwt创建您自己的 JWT 并使用它。

https://github.com/franzgranlund/play-java-jwt上有一个示例项目,它使用了一个稍微不同的 JWT 库作为标题,但给出了这个想法。

要做的主要事情是验证您返回的 JWT 是否使用您发送的相同算法,即没有人向您发送 alg=NONE 或其他愚蠢的东西,并确保您使用的是体面的算法,即 HMAC-带有 AES-GCM 的 SHA256。

如果您对一般使用加密/签名感兴趣,那么https://github.com/playframework/play-scala-secure-session-example/中有一个示例应该会有所帮助。

于 2018-01-31T19:19:53.590 回答