# 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.