J'utilise Omniauth sans concevoir l'authentification, comme j'aime la simplicité. En plus de Omniauth-Facebook, j'utilise Omniauth-identité pour offrir une authentification par courrier électronique / pw.
Railscast sur Omniauth-identity Décrit comment configurer une page d'enregistrement et de connexion personnalisée. Mais les itinéraires par défaut fournis par l'identité (/ auth / identité et / authentité et / identité / registre) sont toujours accessibles.
J'aimerais que cela soit sous mon contrôle, car je veux seulement vouloir vous inscrire aux utilisateurs invités. Y a-t-il un moyen de remplacer ces itinéraires fournis par un middleware de rack?
Essayer de P>
match "/auth/identity", to: "somewhere#else"
3 Réponses :
Un Vous pouvez remplacer la méthode OMNIAUTH code> L'objet de stratégie a une méthode
request_phase code> qui génère un formulaire HTML et le montre à l'utilisateur. Pour la stratégie "Omniauth-identité", ce serait le formulaire que vous voyez dans
/ auth / identité code> url.
demande_phase code> et remplacer le générateur de formulaire avec, par exemple, une redirection à votre page de connexion personnalisée (en supposant que vous l'avez disponible sur
/ Connexion CODE> URL ). Placez les éléments suivants avec votre code d'initialisation Omniauth: P>
module OmniAuth
module Strategies
class Identity
def request_phase
redirect '/login'
end
end
end
end
# Your OmniAuth::Builder configuration goes here...
Si vous souhaitez remplacer la phase de demande, vous voudrez probablement faire la même chose avec enregistrement_phase code> aussi, et assurez-vous que l'option
enregistrement_path code> est pas < / i> ensemble.
En plus de 1Gors et iAINS Réponse:
"/ auth / identité / identité" est servi avec get aussi, pour remplacer, je devais: p>
+1 J'ai ajouté ceci à /config/initializers/omniauth.rb code> sous the
rails.application.config.middleware.use omniauth :: Builder do ... fin code> bloc, avec la réponse @ 1Gors. Merci)
Vous pouvez définir la méthode dans omniauth.rb par exemple: p>
En fin de compte, je viens de donner aux utilisateurs invités une phrase secrète, de sorte que ce n'est pas vraiment important, qu'il y avait le site d'identité original toujours accessible ...