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

Und*_*ion 17 authentication ruby-on-rails restful-authentication devise ios

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

Zac*_*ker 11

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

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

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