Inscription utilisateur avec vérification du courrier électronique et authentification en Ruby
-
11-07-2019 - |
Question
J'essaie de créer une application Web dans Sinatra et je me demandais s'il existait une bonne solution pour l'inscription d'utilisateurs avec vérification du courrier électronique, ainsi que l'authentification - peut-être en tant que middleware en rack? Le support OpenID serait bien d’avoir aussi.
Je suppose que je peux rouler le mien, mais je ne voulais pas réinventer la roue. Si je dois le faire, quelqu'un peut-il m'indiquer les bibliothèques que je pourrais utiliser, peut-être même un exemple de code? Je crains aussi de ne pas pouvoir implémenter quelque chose d'important avec l'inscription / l'authentification, car je ne l'avais jamais fait auparavant.
Si j'ai besoin d'une solution maison, j'ai trouvé bcrypt-ruby un cryptage par mot de passe. et Sinatra :: Mailer ou Pony pour le courrier électronique. Pour vous connecter avec le support OpenID, hancock et hancock-client , bien que je ne sois pas tout à fait sûr de son utilisation et que je n'ai pas réellement besoin de prise en charge de la connexion unique . Peut-être devrais-je simplement utiliser une une bibliothèque ruby ??openid ? Ai-je besoin d'autre chose?
C'est une question assez confuse, mais j'espère qu'une personne plus expérimentée pourra me diriger dans la bonne direction.
La solution
Vous pouvez être intéressé par Authlogic . Vous devrez implémenter vous-même la vérification de l'e-mail, mais cela vous fournira une bonne base pour prendre en charge cette opération.
Authlogic peut être utilisé dans n'importe quel cadre ruby ??que vous voulez: Rails, Merb, Sinatra, Mack, les vôtres cadre, peu importe. Ce n’est pas lié jusqu'à Rails. Il le fait par s'abstenir de ces contrôleurs du framework en utilisant un adaptateur de contrôleur. Merci à Rack, il existe une norme définie pour la structure du contrôleur, et c’est ce que L’adaptateur abstrait d’Authlogic suit. Donc, si votre contrôleur suit le rack normes, vous n'avez pas besoin de faire n'importe quoi.