2010-02-02 5 views
2

J'essaie de combiner les fonctionnalités Beta invitations de Ryan Bates et Open id. La façon dont il est configuré est que le formulaire d'inscription a un champ caché, un jeton d'invitation qui permet à l'utilisateur de s'inscrire. Le jeton d'invitation est envoyé à l'adresse URL suivante:/signup /: invitation_tokenPasser un champ de jeton d'invitation caché après avoir été redirigé depuis l'autorisation openid

Cependant, lorsque j'utilise open_id, il redirige vers l'URL/inscription sans le jeton d'invitation. Comment l'avoir pour que le jeton soit toujours passé après la redirection. Voici le code approprié dans le plugin open_id_authorization

def open_id_redirect_url(open_id_request, return_to = nil, method = nil) 
    open_id_request.return_to_args['_method'] = (method || request.method).to_s 
    open_id_request.return_to_args['open_id_complete'] = '1' 
    open_id_request.redirect_url(root_url, return_to || requested_url) 
end 

def requested_url 
    relative_url_root = self.class.respond_to?(:relative_url_root) ? 
    self.class.relative_url_root.to_s : 
    request.relative_url_root 
    "#{request.protocol}#{request.host_with_port}#{ActionController::Base.relative_url_root}#{request.path}" 
end 

Merci.

Répondre

1

Je pense que vous devez dire le plugin open_id pour revenir à /signup/:invitation_token au lieu de simplement /signup:

signup_url(:invitation_token => params[:invitation_token]) 

passe que pour open_id_redirect_url. Je ne suis pas sûr à 100% que c'est votre problème, cependant.

Questions connexes