# File lib/oauth/controllers/application_controller_methods.rb, line 12 12: def current_client_application 13: @current_client_application 14: end
# File lib/oauth/controllers/application_controller_methods.rb, line 8 8: def current_token 9: @current_token 10: end
# File lib/oauth/controllers/application_controller_methods.rb, line 75 75: def invalid_oauth_response(code=401,message="Invalid OAuth Request") 76: render :text => message, :status => code 77: end
This requies that you have an acts_as_authenticated compatible authentication plugin installed
# File lib/oauth/controllers/application_controller_methods.rb, line 39 39: def login_or_oauth_required 40: if oauthenticate 41: if authorized? 42: return true 43: else 44: invalid_oauth_response 45: end 46: else 47: login_required 48: end 49: end
# File lib/oauth/controllers/application_controller_methods.rb, line 21 21: def oauth? 22: current_token!=nil 23: end
use in a before_filter
# File lib/oauth/controllers/application_controller_methods.rb, line 26 26: def oauth_required 27: if oauthenticate 28: if authorized? 29: return true 30: else 31: invalid_oauth_response 32: end 33: else 34: invalid_oauth_response 35: end 36: end
# File lib/oauth/controllers/application_controller_methods.rb, line 16 16: def oauthenticate 17: verified=verify_oauth_signature 18: return verified && current_token.is_a?(::AccessToken) 19: end
verifies a request token request
# File lib/oauth/controllers/application_controller_methods.rb, line 53 53: def verify_oauth_consumer_signature 54: begin 55: valid = ClientApplication.verify_request(request) do |request_proxy| 56: @current_client_application = ClientApplication.find_by_key(request_proxy.consumer_key) 57: 58: # Store this temporarily in client_application object for use in request token generation 59: @current_client_application.token_callback_url=request_proxy.oauth_callback if request_proxy.oauth_callback 60: 61: # return the token secret and the consumer secret 62: [nil, @current_client_application.secret] 63: end 64: rescue 65: valid=false 66: end 67: 68: invalid_oauth_response unless valid 69: end
# File lib/oauth/controllers/application_controller_methods.rb, line 81 81: def current_token=(token) 82: @current_token=token 83: if @current_token 84: @current_user=@current_token.user 85: @current_client_application=@current_token.client_application 86: end 87: @current_token 88: end
Implement this for your own application using app-specific models
# File lib/oauth/controllers/application_controller_methods.rb, line 91 91: def verify_oauth_signature 92: begin 93: valid = ClientApplication.verify_request(request) do |request_proxy| 94: self.current_token = ClientApplication.find_token(request_proxy.token) 95: if self.current_token.respond_to?(:provided_oauth_verifier=) 96: self.current_token.provided_oauth_verifier=request_proxy.oauth_verifier 97: end 98: # return the token secret and the consumer secret 99: [(current_token.nil? ? nil : current_token.secret), (current_client_application.nil? ? nil : current_client_application.secret)] 100: end 101: # reset @current_user to clear state for restful_...._authentication 102: @current_user = nil if (!valid) 103: valid 104: rescue 105: false 106: end 107: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.