31 lines
846 B
Ruby
31 lines
846 B
Ruby
# frozen_string_literal: true
|
|
|
|
module GoogleApi
|
|
class AuthorizationsController < ApplicationController
|
|
def callback
|
|
token, expires_at = GoogleApi::CloudPlatform::Client
|
|
.new(nil, callback_google_api_auth_url)
|
|
.get_token(params[:code])
|
|
|
|
session[GoogleApi::CloudPlatform::Client.session_key_for_token] = token
|
|
session[GoogleApi::CloudPlatform::Client.session_key_for_expires_at] =
|
|
expires_at.to_s
|
|
|
|
state_redirect_uri = redirect_uri_from_session_key(params[:state])
|
|
|
|
if state_redirect_uri
|
|
redirect_to state_redirect_uri
|
|
else
|
|
redirect_to root_path
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def redirect_uri_from_session_key(state)
|
|
key = GoogleApi::CloudPlatform::Client
|
|
.session_key_for_redirect_uri(params[:state])
|
|
session[key] if key
|
|
end
|
|
end
|
|
end
|