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