Class: Devise::Strategies::YauthToken

Inherits:
Authenticatable
  • Object
show all
Defined in:
lib/devise_yauth_token/strategy.rb

Instance Method Summary collapse

Instance Method Details

#authenticate!Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/devise_yauth_token/strategy.rb', line 15

def authenticate!
  @yauth_provider_error = nil
  if token = params[:yauth_token]
    result = RestClient.get("http://#{.yauth_host}/api/auth/user.json?auth_host=#{request.host}&notrack=true&auth_token=#{token}"){|response, request, result| result }
    result = JSON.parse(result.body) rescue {}
    yauth_user_id = result['data']['user']['id'] if result['status'] == 200
    if !yauth_user_id.blank? && !.blank?
      resource = mapping.to.find_for_yauth_authentication(yauth_user_id, .id)
      if resource.blank?
        result['data']['user']['yauth_user_id'] = yauth_user_id
        resource = mapping.to.new()
      end
      resource.email = result['data']['user']['email']
      resource.omniauth_name = result['data']['user']['omniauth_name']
      resource.yauth_user_id = result['data']['user']['id']
      resource. = result['data']['user']['account_id']
      resource.admin = result['data']['user']['admin']
      resource.need_sign_out = false
      resource. = .id
      resource.save(:validate => false)

      .code = result['data']['account']['code']
      . = result['data']['account']['id']
      .name = result['data']['account']['name']
      .save(:validate => false)

      Rails.logger.info "------------------#{result['data']}---------------------"
      Rails.cache.write("yauth_user_#{result['data']['user']['id']}", result['data']['user'])
      Rails.cache.write("yauth_account_#{result['data']['account']['id']}", result['data']['account'])
      Rails.cache.write("user_permissions_#{resource.id}", result['data']['permissions'])
      success!(resource)
    else
      @yauth_provider_error = I18n.t("devise.yauth_token.erorrs.token_invalid")
      fail(:invalid_token)
    end
  else
    @yauth_provider_error = I18n.t("devise.yauth_token.erorrs.token_blank")
    fail(:invalid_token_blank)
  end
end

#authentication_keysObject

Overwrite authentication keys to use token_authentication_key.



72
73
74
# File 'lib/devise_yauth_token/strategy.rb', line 72

def authentication_keys
  @authentication_keys ||= :yauth_token
end

#current_accountObject



7
8
9
# File 'lib/devise_yauth_token/strategy.rb', line 7

def 
  @current_account ||= Devise.(request.host)
end

#params_auth_hashObject

Try both scoped and non scoped keys.



67
68
69
# File 'lib/devise_yauth_token/strategy.rb', line 67

def params_auth_hash
  params[scope] || params
end

#remember_me?Boolean

Do not use remember_me behavior with token.

Returns:

  • (Boolean)


62
63
64
# File 'lib/devise_yauth_token/strategy.rb', line 62

def remember_me?
  true
end

#valid?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/devise_yauth_token/strategy.rb', line 11

def valid?
   true
end

#valid_request?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/devise_yauth_token/strategy.rb', line 57

def valid_request?
  true
end