3 votes

S'authentifier sur un 'code d'accès' en utilisant Devise dans Rails 3

Je travaille sur un projet rails et il m'a été recommandé d'utiliser Devise pour l'authentification et la gestion des sessions utilisateurs.

J'ai deux types d'utilisateurs qui ont besoin d'une authentification utilisateur/mot de passe et un autre type d'utilisateur que je dois seulement authentifier avec un "code d'accès". Il s'agit de modèles différents, sans héritage.

Quelle serait la meilleure façon de procéder dans Devise ? Existe-t-il un moyen de permettre à tous ces différents types d'authentification de fonctionner côte à côte ?

J'ai envisagé de permettre aux utilisateurs de se connecter à l'aide d'un nom d'utilisateur ou d'une adresse e-mail, mais comment faire pour n'utiliser qu'un seul champ ? Aucun mot de passe n'est nécessaire.

1voto

Matheus Moreira Points 7839

Utiliser le module d'authentification par jeton sans celui de la base de données. Il existe un module exemple dans le Devise Wiki.

Ces jetons, contrairement à ceux que l'on trouve dans les courriels de récupération de mot de passe par exemple, sont permanents et stockés dans la base de données. Ils se comportent par défaut comme des clés d'API de service, ce qui signifie qu'ils ne gardent pas l'utilisateur en session et qu'ils doivent être fournis à chaque demande.

Pour qu'ils signent réellement les utilisateurs :

# If true, authentication through token does not store user in session and needs
# to be supplied on each request. Useful if you are using the token as API token.
config.stateless_token = false

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X