Module: Oauth::Models::Consumers::Token::ClassMethods
- Defined in:
- lib/oauth/models/consumers/token.rb
Instance Method Summary collapse
- #build_user_from_token ⇒ Object
- #consumer ⇒ Object
- #credentials ⇒ Object
-
#find_or_create_from_access_token(user, access_token, new_token = nil) ⇒ Object
Finds, creates or updates a ConsumerToken by finding the token or taking it when it’s given.
- #find_or_create_from_request_token(user, token, secret, oauth_verifier) ⇒ Object
- #get_request_token(callback_url) ⇒ Object
- #service_name ⇒ Object
-
#set_details(access_token, token) ⇒ ConsumerToken
Set the details such as the secret, refresh token and expiration time to an instance of ConsumerToken.
Instance Method Details
#build_user_from_token ⇒ Object
84 85 |
# File 'lib/oauth/models/consumers/token.rb', line 84 def build_user_from_token end |
#consumer ⇒ Object
24 25 26 27 |
# File 'lib/oauth/models/consumers/token.rb', line 24 def consumer = credentials[:options] || {} @consumer||=OAuth::Consumer.new credentials[:key],credentials[:secret], end |
#credentials ⇒ Object
87 88 89 |
# File 'lib/oauth/models/consumers/token.rb', line 87 def credentials @credentials||=OAUTH_CREDENTIALS[service_name] end |
#find_or_create_from_access_token(user, access_token, new_token = nil) ⇒ Object
Finds, creates or updates a ConsumerToken by finding the token or taking it when it’s given. It then updates the attributes and saves the changes/new record to a datastore. Usage example: find_or_create_from_access_token(current_user, access_token) <– Find or create a new access token find_or_create_from_access-token(current_user, Oauth2Token.last, client.refresh!) <– Edits existing record with new refreshed information
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/oauth/models/consumers/token.rb', line 50 def find_or_create_from_access_token(user, access_token, new_token = nil) if access_token.class.ancestors.include?(Oauth2Token) token = access_token else if user token = self.find_or_initialize_by(user_id: user.id, token: access_token.token) else token = self.find_or_initialize_by(token: access_token.token) end end token = if new_token then set_details(new_token, access_token) else set_details(access_token, token) end token.save! if token.new_record? or token.changed? token end |
#find_or_create_from_request_token(user, token, secret, oauth_verifier) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/oauth/models/consumers/token.rb', line 33 def find_or_create_from_request_token(user,token,secret,oauth_verifier) request_token=OAuth::RequestToken.new consumer,token,secret ={} [:oauth_verifier]=oauth_verifier if oauth_verifier access_token=request_token.get_access_token find_or_create_from_access_token user, access_token end |
#get_request_token(callback_url) ⇒ Object
29 30 31 |
# File 'lib/oauth/models/consumers/token.rb', line 29 def get_request_token(callback_url) consumer.get_request_token(:oauth_callback=>callback_url) end |
#service_name ⇒ Object
20 21 22 |
# File 'lib/oauth/models/consumers/token.rb', line 20 def service_name @service_name||=self.to_s.underscore.scan(/^(.*?)(_token)?$/)[0][0].to_sym end |
#set_details(access_token, token) ⇒ ConsumerToken
Set the details such as the secret, refresh token and expiration time to an instance of ConsumerToken
70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/oauth/models/consumers/token.rb', line 70 def set_details(access_token, token) secret = access_token.respond_to?(:secret) ? access_token.secret : nil refresh_token = access_token.respond_to?(:refresh_token) ? access_token.refresh_token : nil expires_in, expires_at = token.expiration_date(access_token) if token.class.ancestors.include?(Oauth2Token) token.token = access_token.token token.refresh_token = refresh_token token.secret = secret token.expires_at = expires_at token.expires_in = expires_in token end |