【问题标题】:Type of tokens used to authenticate rest api用于验证 rest api 的令牌类型
【发布时间】:2017-03-12 12:14:27
【问题描述】:

我一直在寻找一些在客户端生成令牌的方法。但是我真的被困在这里,我正在尝试做一个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 密钥。

我正在尝试做一个 REST Api,我用 nodejs 做的后端,特别是 hapijs 框架和我将用 React 或 Angular 做的前端。

【问题讨论】:

    标签: rest jwt api-key


    【解决方案1】:

    如果没有关于手头问题的更多信息,很难提供一个好的解决方案。在这种情况下,客户是什么?如果您正在构建某种类型的网站(站点/应用程序),那么生成代码就会暴露给用户,这是一个很大的安全问题。如果这是在独立编译的应用程序中发生的事情,如果没有用于生成在客户端上运行的二进制文件的原始源,用户将无法访问,那么您所要做的就是选择具有确定逆向的一代; jwt、rsa、aes、des、ect 都是现代加密算法的例子。 JWT 由 3 部分组成 [token = encodeBase64(header) + '.' + encodeBase64(有效负载) + '.' + encodeBase64(signature)] 并且可以具有任意大小的 json 有效负载,这使它们变得更大,但是如果您希望令牌传递更多的信息,而不仅仅是一个真值或假值(即最有可能的情况)。如果您正在与外部资源交互,我建议您在用户无法访问的单独服务上生成这些令牌。

    【讨论】:

    • 前端将是 Angular 或 React 以及 android 或 arduino 中的一些应用程序。
    猜你喜欢
    • 2016-07-16
    • 2016-01-01
    • 2017-11-27
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    • 2014-08-28
    • 2021-09-04
    • 1970-01-01
    相关资源
    最近更新 更多