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: p> à 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: p> 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é. P> Toute aide serait incroyable! Merci! P> p>
3 Réponses :
J'ai mis en place une solution unique_access_token avec authlogic et ce que je devais faire était d'ajouter J'ai ajouté ce qui suit sur le contrôleur où je voulais autoriser single_access_token Authentification. P> simple_access_allowed_request_types: tout code> au modèle d'utiliseSession.
def single_access_allowed?
["get_user_info","update_user_info"].include?(action_name)
end
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 code>, par exemple si vous souhaitez la définir avec
update_column code> Pour éviter tout rappel, vous pouvez utiliser
authlogic :: aléatoire.friendy_Token code>. Sachez que si Authlogic change cela, vous devrez mettre à jour votre code.
La seule chose que je devais faire faire ce travail était
unique_access_Token code> à mes utilisateurs-table li>
- ajoutez une méthode appelée
unique_access_allowed? code> à chaque contrôleur où un accès unique doit être autorisé. LI>
ul> Cette méthode ressemblerait à ceci: p> xxx pré> Je n'avais rien d'ajouter dans usersessionscontroller code> ou le Usersession code> 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 :) p> espère que cela aide. P> p>
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 . p>
Vous devrez ajouter une méthode privée appelée simple_access_alling? code> 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 code>. Donc, pour frapper votre contrôleur sans vous connecter, ce sera
/ your_route /? User_credentials = xxxxxx code> p> p>