我在使用guides for older versions使用JWT身份验证时遇到问题,但我想关注新的Play 2.6
根据official documentation,JWT现在在引擎盖下使用。
似乎有一种更简单的方法,而不是创建一个ActionBuilder和一堆其他类或导入第三方库,但我无法弄清楚我需要做什么。
有人可以给我指导如何用2.6创建JWT令牌/秘密吗?最好是Java,但我也可以通过Scala。
答案 0 :(得分:3)
有人可以给我指导如何用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或傻事,并确保您使用的算法不错,即使用AES-GCM的HMAC-SHA256。
如果您对通常使用加密/签名感兴趣,https://github.com/playframework/play-scala-secure-session-example/中有一个应该有用的示例。