我一直在寻找在客户端生成令牌的方法。但是我真的被困在这里了,我正在尝试做一个rest api来做一些物联网,我已经看到了其他平台如何做他们的身份验证方法,但真的没有抓住他们,所以我正在寻找JWT,但它是对这个目的的渴望。这是其他平台上的一些令牌的示例,它们有一个Api密钥,您可以从中生成一个令牌来执行相应的http请求。下面是一个生成令牌的示例:
4YjYQOqR8MRjRIamTqy2LSQYsscNHO和另一个令牌:
sub-c-bd2c3600-9e31-11e6-9194-0619f8945a4f下面是一个JWT令牌的示例:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImRpZWdvLm1heW9yZ2E4NkBnbWFpbC5jb20iLCJyb2xlIjpbIlVzZXIiXSwiaWQiOiI1ODExMmRkZjFkMzRhOTZiOGIxY2MwODAiLCJpYXQiOjE0Nzc3NzkyMTV9.bD62WQv_Q16tegZDejuDS435LOn1awGyh20Npi7166w好的,所以当用户使用平台时,我考虑将JWT与localStorage或cookie或会话一起使用,对于来自智能手机和arduino等不同设备的http请求,使用bcrypt,这样用户就可以从API Key开始生成随机令牌。
我正在尝试做一个REST Api,我正在用nodejs做后端,特别是hapijs框架和我将用React或Angular做的前端。
发布于 2016-10-30 08:31:20
如果没有更多关于手头问题的信息,很难提供一个好的解决方案。本例中的客户端是什么?如果你正在构建某种类型的网站(站点/应用程序),那么生成代码就会暴露给用户,这是一个很大的安全问题。如果这是在独立编译的应用程序中发生的事情,并且如果没有用于生成在客户机上运行的二进制文件的原始源代码,用户将无法访问,那么您所要做的就是选择具有明确逆的一代;jwt、rsa、aes、des等都是现代加密算法的示例。JWT由token =encodeBase64(报头)+‘.+encodeBase64(有效负载)+’.+encodeBase64(签名)3部分组成,可以有一个任意大小的json有效负载,这使得它们有点大,但是如果你想让令牌传递更多,而不仅仅是真或假的值(这是最有可能的情况),你会在许多方法中遇到这个问题。如果您正在与外部资源交互,我建议您在用户无法访问的单独服务上生成这些令牌。
https://stackoverflow.com/questions/40324796
复制相似问题