Sha256: a6de4bcb1a8674d2992a9616ec670aed753ded77b15db6813f065fca9116e563
Contents?: true
Size: 1.56 KB
Versions: 2
Compression:
Stored size: 1.56 KB
Contents
require 'omniauth-oauth2' require 'json' module OmniAuth module Strategies class Line < OmniAuth::Strategies::OAuth2 option :name, 'line' option :scope, 'profile openid email' option :client_options, { site: 'https://access.line.me', authorize_url: '/oauth2/v2.1/authorize', token_url: '/oauth2/v2.1/token' } def callback_phase options[:client_options][:site] = 'https://api.line.me' super end alias :old_callback_url :callback_url def callback_url if request.params['callback_url'] request.params['callback_url'] else old_callback_url end end def callback_path params = session['omniauth.params'] if params.nil? || params['callback_url'].nil? super else URI(params['callback_url']).path end end uid { raw_info['userId'] } info do { name: raw_info['displayName'], email: extra["email"], image: raw_info['pictureUrl'] } end extra do hash = {} hash[:id_token] = access_token['id_token'] if !options[:skip_jwt] && !access_token['id_token'].nil? decoded = ::JWT.decode(access_token['id_token'], nil, false).first hash[:id_info] = decoded end end def raw_info @raw_info ||= JSON.load(access_token.get('v2/profile').body) rescue ::Errno::ETIMEDOUT raise ::Timeout::Error end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
omniauth-ljne-0.1.7 | lib/omniauth/strategies/line.rb |
omniauth-ljne-0.1.6 | lib/omniauth/strategies/line.rb |