将Rails / Devise身份验证公开给iOS应用程序

时间:2012-01-12 13:56:29

标签: ruby-on-rails ios authentication devise restful-authentication

我有一个rails 3.1应用程序,它使用Devise进行身份验证,带有一个简单的用户模型,带有电子邮件,密码等。我需要能够从iphone应用程序进行身份验证。如何公开此功能?答案很广泛,因为我不确定我的选择是什么。

1 个答案:

答案 0 :(得分:11)

最快的方法是简单地启用http_authenticatable并通过HTTP Basic Auth传递用户名和密码。虽然这是最简单的方法,但这意味着您必须以明文形式存储用户密码,并将其与您提出的每个请求一起发送。

更好的选择是令牌身份验证,您可以通过参数或HTTP Basic Auth传递它(在这种情况下,您可以将密码设置为“X”,将令牌设置为用户名)。这样做的好处是,您最初可以使用用户名/密码来获取令牌,然后将其用于任何进一步的身份验证。

使用最少量代码进行令牌身份验证的最简单方法是在Devise中启用HTTP身份验证并设置一个新控制器,该控制器要求用户登录并且所有操作都输出reset_authentication_token的结果。获得令牌后,您可以将其传递给任何将来登录的HTTP身份验证请求。