Rails de l'api et de l'application mobile native d'authentification

Je sais il y a beaucoup d'informations à ce sujet, mais je ne trouve pas que tout est à jour.
Je vois des sujets comme ce un sur les rails et android authentification mais je vois que TokenAuthenticatable est maintenant retiré de concevoir.

Ma question est simple: est-il un bon moyen pour authentifier les utilisateurs de native Android et iPhone apps à l'aide de Rails 4? Quelqu'un sait-il de bons tutoriels ou des articles qui offrent une solution ?

Adam Waite Ajout d'un bounty:

Je viens d'ouvrir un 500 bounty sur cette question, parce que je ne peux pas trouver la bonne pratique pour l'authentification d'un utilisateur à partir d'une application iOS pour Rails de l'API n'importe où. C'est ce que j'envisage de faire, mais n'ont aucune idée de si c'est le cas ou pas?!:

Imaginons que nous avons un User enregistrement. Un utilisateur a signé pour un compte qui a créé un User enregistrement dans la base de données avec un email colonne et un password_digest colonne.

Lorsque l'utilisateur se connecte à l', je voudrais que l'utilisateur de rester authentifié sur l'application mobile jusqu'explicitement signature-out.

J'imagine que nous allons avoir besoin d'un jeton d'authentification. J'aurais peut-être créer un ApiKey l'enregistrement lorsque le User est créé et qui ont enregistré une association sur le User enregistrement.

Lorsque l'utilisateur se connecte/haut, la réponse contiendra une clé API (quelque chose comme SecureRandom.hex) qui seront enregistrées dans l'iOS Trousseau et utilisé à toutes les demandes ultérieures à la vérification de l'utilisateur en le passant dans un en-tête et en vérifiant à l'aide de quelque chose comme:

before_filter :restrict_access

private

def restrict_access
authenticate_or_request_with_http_token do |token, options|
  ApiKey.exists?(access_token: token)
end

Est-ce sécurisé? Dois-je être rafraîchissant le jeton à chaque requête et de l'inclure dans la réponse?

Ce que d'autres options s'offrent à moi? Ce qui ne les aime de Facebook, Twitter et Pinterest faire?

Je suis conscient de OAuth2.0, mais n'est-ce pas, pour l'octroi des applications externes?

Est-il un joyau qui gère tout ça?

Désolé, complètement savez pas ici.

500 à la meilleure réponse.

  • J'ai enfin le succès de ma quête, j'ai maintenant un des Rails de backend, et l'application android la possibilité de s'inscrire, se connecter et se déconnecter, et pas besoin de se ré-authentifier à chaque fois. Je vais prendre l'exemple des trucs bientôt. Il fonctionne très bien mais je ne sais pas si c'est le cas ou pas, je ne suis pas bon à ça... Donc j'attends une réponse.
  • Je pourrais faire la même chose sur iOS, mais, comme vous, n'ont aucune idée de si ça va être facile de pirater!
  • Peut-être que ma réponse à cette autre question sera utile.
  • Ce que je fais, c'est de modifier la génération du jeton dans ce github.com/danahartweg/authenticatable_rest_api app avec le apiauth gem Troy mentionné. L'app a toutes les étapes Ashitaka mentionné.
  • pouvez-vous expliquer la façon dont vous le faire?
InformationsquelleAutor agonist_ | 2014-02-05