2014-05-06 47 views
1

背景: 我的公司在Play Framework 2.2中开发了一个REST API,我们使用Play的内置身份验证,使用签名cookie作为安全性。我们的应用程序分成多个Play实例,共享相同的application.secret。这使我们能够在Play的所有实例中轻松读取会话cookie。如何重用Node.js中由Play Framework 2.2设置的签名cookie?

问题: 现在我们在迁移REST的API来Node.js的一些地区的过程中,想用相同的会话cookie存在(有相同application.secret)来检测,如果用户是否登录。我搜查了互联网,我没有发现任何关于这个话题的内容。

问题: 那么,有可能吗?它被认为足够安全吗?还是需要迁移到另一种身份验证方法?

回答

1

的cookie被编码在CookieBaker:

https://github.com/playframework/playframework/blob/master/framework/src/play/src/main/scala/play/api/mvc/Http.scala#L430

与HMAC-SHA1签名使用Crypto.sign:

https://github.com/playframework/playframework/blob/master/framework/src/play/src/main/scala/play/api/libs/Crypto.scala#L98

你必须应用秘密大概的Node.js有相同的签名算法,所以你应该很好走。

+0

谢谢!我设法用Node.js中的Crypto模块通过使用下面的代码行来解决它。这将生成给定cookie的数据部分的签名。数据部分必须先解析。 'crypto.createHmac('sha1',“APPLICATION_SECRET”)。update(“DATA_PART_OF_COOKIE”)。digest('hex')' – freelm

相关问题