1

我正在 Heroku 上构建一个 Rails 应用程序。

我安装了设计来管理我想在其上添加“令牌可验证”的用户身份验证。

我基本上使用了本教程,效果很好

但是,我遇到了有关可验证令牌的更复杂的教程,例如以下两个:

我不明白为什么它们比我实现的复杂得多?他们似乎提到了“移动”的东西,这是否意味着使用“令牌可验证”是一种更复杂的方式,因为它允许在更多的使用情况下进行身份验证,例如在移动设备上?

真的在黑暗中,所以我很感激任何帮助。

4

1 回答 1

3

在大多数情况下,(本机)移动应用程序中的身份验证与通过浏览器进行身份验证的方式几乎相同:用户提供他的凭据,这些凭据通过网络发送到服务器/应用程序,应用程序通过提供用户代表经过身份验证的会话的“令牌”。

主要区别:基于浏览器的客户端通常会使用 HTML 表单的 HTTP POST 提交所述凭据,使用application/x-www-form-urlencoded. 返回的令牌通常以会话 cookie 的形式提供,浏览器会在每个后续 HTTP 请求中显示该 cookie。

另一方面,本机移动客户端虽然充当浏览器,但并不局限于 HTML 的处理方式,而且它们中的大多数不使用 cookie。

典型的移动客户端使用 Web 服务API。大多数 API 都设计为尽可能无状态(与基于浏览器/cookie 的会话不同)。

大多数 Web 服务 API 还需要/希望能够使用尽可能少的带宽发送和接收尽可能多的分层复杂数据。因此,他们倾向于使用更紧凑的结构化数据表示,例如JSON(或在某些情况下为BSON)。

在大多数情况下,也不希望将身份验证令牌显示为 URL 查询参数(或者,如果您通过 JSON 有效负载发送,您不妨在其中包含令牌)。

出于这个原因,现有的 Devise 会话控制器和令牌身份验证机制是不​​够的,因此有许多示例说明如何提供替代的、REST-ful 或基于 JSON 的身份验证来扩展 Devise。

于 2013-06-01T00:17:07.343 回答