class OmniAuth::Strategies::LineOauth2
Public Instance Methods
base64url_decode(target)
click to toggle source
# File lib/omniauth/strategies/oauth2_line.rb, line 65 def base64url_decode(target) rem = (target.length) % 4 if (rem > 0) target += '=' * (4 - rem) end return JSON.load(Base64.urlsafe_decode64(target)) end
callback_phase()
click to toggle source
host changed
Calls superclass method
# File lib/omniauth/strategies/oauth2_line.rb, line 25 def callback_phase options[:client_options][:site] = 'https://api.line.me' super end
callback_url()
click to toggle source
# File lib/omniauth/strategies/oauth2_line.rb, line 16 def callback_url if options.authorization_code_from_signed_request_in_cookie '' else # Fixes regression in omniauth-oauth2 v1.4.0 by https://github.com/intridea/omniauth-oauth2/commit/85fdbe117c2a4400d001a6368cc359d88f40abc7 options[:callback_url] || (full_host + script_name + callback_path) end end
email_from_id_token()
click to toggle source
# File lib/omniauth/strategies/oauth2_line.rb, line 41 def email_from_id_token if !options[:skip_jwt] && !access_token['id_token'].nil? decoded = ::JWT.decode(access_token['id_token'], nil, false).first payload_decoded = base64url_decode(access_token['id_token'].split(".")[1]) #Rails.logger.info "JWT decode payload =>" + payload_decoded.to_s email = payload_decoded['email'] # We have to manually verify the claims because the third parameter to # JWT.decode is false since no verification key is provided. ::JWT::Verify.verify_claims(decoded, verify_iss: true, iss: 'https://access.line.me', verify_aud: true, aud: options.client_id, verify_sub: false, # verify_expiration: true, verify_not_before: true, verify_iat: true, verify_jti: false, leeway: options[:jwt_leeway]) end return email end
prune!(hash)
click to toggle source
# File lib/omniauth/strategies/oauth2_line.rb, line 74 def prune!(hash) hash.delete_if do |_, v| prune!(v) if v.is_a?(Hash) v.nil? || (v.respond_to?(:empty?) && v.empty?) end end
raw_info()
click to toggle source
Require: Access token with PROFILE permission issued.
# File lib/omniauth/strategies/oauth2_line.rb, line 83 def raw_info @raw_info ||= JSON.load(access_token.get('v2/profile').body) rescue ::Errno::ETIMEDOUT raise ::Timeout::Error end