Sha256: dbaa036ec269470b5440c2e769679528b47e6c4c3ae74ac0ff393f82040243ff
Contents?: true
Size: 1.63 KB
Versions: 1
Compression:
Stored size: 1.63 KB
Contents
require 'omniauth-oauth2' module OmniAuth module Strategies class Stagebloc < OmniAuth::Strategies::OAuth2 option :name, 'stagebloc' option :client_options, { site: 'https://api.stagebloc.com/v1', authorize_url: 'https://stagebloc.com/connect', token_url: 'https://api.stagebloc.com/v1/oauth2/token' } option :access_token_options, { header_format: 'OAuth %s' } uid { raw_info['id'] } info do { 'id' => raw_info['id'], 'url' => raw_info['url'], 'created' => Time.parse(raw_info['created'] + ' UTC'), 'name' => raw_info['name'], 'username' => raw_info['username'], 'bio' => raw_info['bio'], 'color' => raw_info['color'], 'birthday' => Time.parse(raw_info['birthday']), 'gender' => raw_info['gender'], 'email' => raw_info['email'], 'photo' => raw_info['photo'] } end extra do { 'raw_info' => raw_info } end def raw_info @raw_info ||= access_token.get('users/me').parsed end def build_access_token super.tap do |token| token.options.merge!(access_token_options) end end def access_token_options options.access_token_options.inject({}) { |h,(k,v)| h[k.to_sym] = v; h } end end end end OAuth2::Response.register_parser(:stagebloc_parser, 'application/json') do |body| parsed = MultiJson.respond_to?(:adapter) ? MultiJson.load(body) : MultiJson.decode(body) rescue body parsed['data'] end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
omniauth-stagebloc-0.1.0 | lib/omniauth/strategies/stagebloc.rb |