8
votes

Jeton authlogique et un seul accès

J'ai du mal à trouver un didacticiel simple sur la manière d'activer l'authentification de jeton à accès unique à l'aide d'Authlogic. Il y a une documentation mais ce n'est pas très utile.

J'ai ajouté single_access_token à mon dB, j'ai ajouté ceci: xxx

à ma classe de session. Mais je ne comprends toujours pas comment un utilisateur est authentifié à l'aide des informations d'identification qui est transmise sur chaque appel. Mon requis_Authentication avant le filtre est une vérification standard de Current_User comme ceci: xxx

mais est-ce suffisant pour fonctionner? Est-ce que la méthode de la session.Find faire la magie pour enregistrer l'utilisateur est basée sur mes paramètres ou dois-je créer une méthode distincte qui vérifie réellement si le paramètre User_Credentials param est là, puis recherchez l'utilisateur en fonction de l'utilisateur, puis de vous connecter à cet utilisateur. Je suis confus si je suis vraiment "Créer" une nouvelle session à chaque fois que j'utilise un SAT ou si je ne fais que régler l'utilisateur actuel dans un filtre avant chaque fois qu'un appel API est effectué.

Toute aide serait incroyable! Merci!


0 commentaires

3 Réponses :


3
votes

J'ai mis en place une solution unique_access_token avec authlogic et ce que je devais faire était d'ajouter simple_access_allowed_request_types: tout code> au modèle d'utiliseSession.

J'ai ajouté ce qui suit sur le contrôleur où je voulais autoriser single_access_token Authentification. P>

  def single_access_allowed?
      ["get_user_info","update_user_info"].include?(action_name)
  end


2 commentaires

Daniel, a-t-il fonctionné? Sinon, laissez-moi savoir quels problèmes vous rencontrez et je vais essayer d'aider. Merci!


Si vous avez besoin de générer simplement le simple_access_token , par exemple si vous souhaitez la définir avec update_column Pour éviter tout rappel, vous pouvez utiliser authlogic :: aléatoire.friendy_Token . Sachez que si Authlogic change cela, vous devrez mettre à jour votre code.



3
votes

La seule chose que je devais faire faire ce travail était

  • Ajouter un champ appelé unique_access_Token à mes utilisateurs-table
  • ajoutez une méthode appelée unique_access_allowed? à chaque contrôleur où un accès unique doit être autorisé.

    Cette méthode ressemblerait à ceci: xxx

    Je n'avais rien d'ajouter dans usersessionscontroller ou le Usersession objet. Authlogic gère cela pour vous. Avec un jeton à accès unique, une seule demande est authentifiée, il n'y a donc pas une session persistante. Chaque demande doit envoyer le jeton à accès unique. D'où le nom: un jeton pour obtenir un seul accès :)

    espère que cela aide.


0 commentaires

0
votes

Le code source d'Authlogic est la meilleure documentation sur le jeton d'accès unique. Ceci est la section spécifique qui en discute .

Vous devrez ajouter une méthode privée appelée simple_access_alling? dans le contrôleur où vous essayez de laisser les utilisateurs à accéder. Le jeton d'accès unique est passé par défaut en tant que paramètre codé URL à l'aide du nom user_credentials . Donc, pour frapper votre contrôleur sans vous connecter, ce sera / your_route /? User_credentials = xxxxxx


0 commentaires