【发布时间】:2015-09-03 21:19:16
【问题描述】:
我目前正在一个学校项目的上下文中使用 Rails4 构建一个 REST API,但我在构建带有令牌身份验证的 API 方面还很陌生:我正在寻找好的做法。
我遵循article 中详述的规则。这是一篇法语博客文章,但有趣的部分是关于令牌身份验证的最后一条规则。
如果有人想要进行身份验证,他首先必须发送一个登录请求(例如,POST /sessions,使用电子邮件和密码作为发布数据)。如果身份验证成功,服务器会通过发回一个令牌(比如“abcd...”)进行响应。
然后,如果用户想要访问 API,他必须将令牌与请求一起发回,但要加密。例如,如果用户想要列出所有用户,他会使用 HTTP GET 请求查询 /users 路径。他还会在请求中发送以下令牌:md5("abcd..." GET /users),而不是直接发送 API 返回的原始令牌(“abcd...”)。
这是一个好习惯吗?真的有必要还是只在每个请求中发送原始令牌就足够了?
您对进行令牌身份验证有何建议?
在我的研究中,我还阅读了有关 JWT(JSON Web Token)的信息。它是什么?是应该替换API返回的原始令牌还是封装客户端发送给API的每个请求的令牌?还是别的什么?
【问题讨论】:
标签: ruby-on-rails api ruby-on-rails-4 authentication token