我知道有很多关于此主题的信息,但是我找不到任何最新的信息。 我看到像this one relating to rails and android authentication这样的话题,但我看到那TokenAuthenticatable
is now removed from devise。Rails api和原生移动应用程序认证
我的问题很简单:是否有认证,从原生的Android和iPhone用户的好方法使用Rails应用程序4?有谁知道提供解决方案的好教程或文章?
亚当韦特加入悬赏:
我刚刚开了在这个问题上500奖金,因为我无法找到从iOS应用用户随时随地认证到Rails的API的正确做法。这是我正在考虑的事情,但不知道它是否安全?!:
我们假设我们有一个User
记录。用户已注册一个帐户,该帐户在数据库中创建了一个User
记录,其中email
列和password_digest
列。
当用户登录,在我想该用户仍然在移动应用中验证,直到明确签约出。
我想我们将需要一个基于令牌的认证。当创建User
时,我可能会创建ApiKey记录,并将其保存为User
记录中的关联。
当用户登录/注册时,响应将包含一个API令牌(类似于SecureRandom.hex
),该令牌将被保存在iOS密钥链中,并与所有后续请求一起用于验证用户,方法是将用户传入头并验证它使用类似的东西:
before_filter :restrict_access
private
def restrict_access
authenticate_or_request_with_http_token do |token, options|
ApiKey.exists?(access_token: token)
end
这种事情安全吗?我是否应该用每个请求刷新令牌并将其包含在响应中?
我还有其他选择吗? Facebook,Twitter和Pinterest喜欢做什么?
我知道OAuth2.0,但这不是用于授予外部应用程序吗?
是否有宝石管理这些?
对不起,在这里完全不确定。
500以最佳答案。
我已经Finnaly成功我的追求,我现在有一个Rails后端,和Android应用程序能够注册,登录和注销,并且无需每次都重新进行身份验证。我会很快做出例子。它工作得很好,但我不知道它是否安全,我不擅长这一点...所以我等待回应。 –
我可以在iOS上做同样的事情,但是像你一样,不知道它是否会很容易被破解! –
也许[我对这个问题的回答](http://stackoverflow.com/questions/18605294/is-devises-token-authenticatable-secure/18695244#18695244)会有帮助。 – Ashitaka