ruby-on-rails - 设计 API 身份验证

我正在开发一个 Rails Web 应用程序,它还为移动设备提供基于 JSON 的 API。移动客户端应首先通过 (email/pass) 获取 token ,然后客户端将使用该 token 进行后续 API 调用。

我是 Devise 的新手,我正在寻找一个类似于 authenticate(email, pass) 的 Devise API 并期望它返回 true/false,然后基于此我将创建并交回 token 或返回拒绝消息。但似乎 Devise 没有提供这样的功能。

我知道 Devise 1.3 提供了基于 JSON 的身份验证,但这与我需要的有点不同 - 我需要生成 token 并处理回客户端,然后使用 token 完成身份验证。

有人可以指点一下吗?

最佳答案

有一个名为 :token_authenticable 的设计配置。因此,如果您将其添加到“用户”中的设计方法中,那么您只需调用即可在 API 中进行身份验证

"/api/v1/recipes?qs=sweet&auth_token=[@user.auth_token]"

您可能也希望在您的用户中使用它:

before_save :ensure_authentication_token

更新(带有 API 授权码)

您正在寻找的方法是:

resource = User.find_for_database_authentication(:login=>params[:user_login][:login])
resource.valid_password?(params[:user_login][:password])

这是我的 gist with a full scale JSON/API login with devise

https://stackoverflow.com/questions/7614798/

相关文章:

jquery - 使用 Highcharts 通过 JSON 重新加载图表数据

ios - 使用 AFNetworking 2.0 发布 JSON 数据

jquery - getJSON 到 console.log() 输出 json 结构

javascript - 将 JSON 字符串转换为 Javascript 数组

javascript - 在输入隐藏字段中存储返回 json 值

java - 确定 JSON 提要中是否存在值的更好方法

php - 为什么 json_encode 添加反斜杠?

java - 如何使用 @ResponseBody 从 Spring Controller 返回 J

c# - 如何从 C# 中的 JSON 字符串中获取一些值?

java - Gson:@Expose 与 @SerializedName