Class: OauthController

Inherits:
ResponseController show all
Defined in:
app/controllers/oauth_controller.rb

Instance Method Summary collapse

Methods inherited from StartKitController

#access_level_control, #charge_session_manager, #check_access_level, #current_user, #edit_checkout

Instance Method Details

#authorizeObject



6
7
8
9
10
11
12
13
14
15
16
# File 'app/controllers/oauth_controller.rb', line 6

def authorize
  if params[:name].present? && params[:type].present?
    set_oauth params[:name], params[:type]
  else
    ActiveRecord::Base.logger.error('имя и тип соц.сети не пришли')
    redirect_to authorization_url, flash: {pills: 'имя и тип соц.сети не пришли'}
  end

# отправка пользователя на подтверждение
  redirect_to @oauth.auth_request
end

#oauth_verifyObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/controllers/oauth_controller.rb', line 18

def oauth_verify
  if params[:code].present?
    # обмен code на токен
    access_card_params = @oauth.auth_request :step2, {:code => params[:code]}

    case access_card_params[:state]
      when :ok
         access_card_params
        redirect_to profile_path
      else
        # данные не обработаны по причине access_card_params[:error]
        ActiveRecord::Base.logger.error("данные не обработаны по причине #{access_card_params[:error]}")
        # ActionCable.server.broadcast "pills", {state: 'red', message: "данные не обработаны по причине #{access_card_params[:error]}", url: authorization_url}
        redirect_to authorization_url, flash: {pills: "данные не обработаны по причине #{access_card_params[:error]}"}
    end
  else
    #code не пришёл от api соц.сети
    ActiveRecord::Base.logger.error("code не пришёл от api соц.сети")
    redirect_to authorization_url, flash: {pills: 'code не пришёл от api соц.сети'}
  end
end

#openid_verifyObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'app/controllers/oauth_controller.rb', line 40

def openid_verify
  if params['openid.claimed_id'].present?
    access_card_params = @oauth.oauth_access_card_params /.*\/(\d+)$/.match(params['openid.claimed_id'])[1]

    case access_card_params[:state]
    when :ok
       access_card_params
      redirect_to profile_path
    else
      # данные не обработаны по причине access_card_params[:error]
      ActiveRecord::Base.logger.error("данные не обработаны по причине #{access_card_params[:error]}")
      # ActionCable.server.broadcast "pills", {state: 'red', message: "данные не обработаны по причине #{access_card_params[:error]}", url: authorization_url}
      redirect_to authorization_url, flash: {pills: "данные не обработаны по причине #{access_card_params[:error]}"}
    end
  else
    #code не пришёл от api соц.сети
    ActiveRecord::Base.logger.error("openid.claimed_id не пришёл от api соц.сети")
    redirect_to authorization_url, flash: {pills: 'openid.claimed_id не пришёл от api соц.сети'}

  end
end