omniauth-gov 0.1.11 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0762ec72d9f4a09215996f0a976efe561ba960568728c3a803c64e141852698d
4
- data.tar.gz: a7e263a4b7eeb3e2af8cdec1963e64af6f1a5d80c9c59dc099eebf642b3a17ca
3
+ metadata.gz: 8325c0101ce21a755e3c380a1c2ce225c8d08f3bb50a4f2e916a99bdd58c8806
4
+ data.tar.gz: b9a6cbfbb3910f487d981e8f254db5a02e24e5342e5aaf90e971d6718264ecaf
5
5
  SHA512:
6
- metadata.gz: 620365eaf53aad3f1c1cfa3575eacd2ded1dd5f654a3ec7568a8692a450216eef63d5e8eb1286bd086421c0bf8571301fd30d56c902ed7258be990e4883d6a01
7
- data.tar.gz: e4f670989eeb1448965ed10b4e11a72ca7aa67ebfc5ed32cc504e917eb4d80cade903f46111494f8856fdb948adad93a8494c5b5d76493add15e158f650fe24e
6
+ metadata.gz: 90107ceeee915ade2abd57738ad3e2aaab87da1ee6a95b17e055268789857875c599e18f90e4c0764b052afc6265237b4708e62491ae730b680dfe9ba1898f3a
7
+ data.tar.gz: 26536ae23866e074ce243110375adc42be2629952fbb9079a18843003f024ef3e291d88f755e2bc771c60d8bd6e2eb944624792d4ce5e56d08cd80103aec9ed9
@@ -0,0 +1,24 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ ruby-version: ['2.4', '2.5', '2.6', '2.7', '3.0', '3.1', '3.2', 'truffleruby-head']
15
+
16
+ steps:
17
+ - uses: actions/checkout@v3
18
+ - name: Set up Ruby ${{ matrix.ruby-version }}
19
+ uses: ruby/setup-ruby@v1
20
+ with:
21
+ ruby-version: ${{ matrix.ruby-version }}
22
+ bundler-cache: true
23
+ - name: Build and test with Rake
24
+ run: bundle exec rake
data/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ /pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+
19
+ # macOS
20
+ **/.DS_Store
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour
data/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in omniauth-gov.gemspec
4
+ gemspec
5
+
6
+ group :development, :test do
7
+ gem 'guard'
8
+ gem 'guard-rspec'
9
+ gem 'guard-bundler'
10
+ gem 'rb-fsevent'
11
+ gem 'growl'
12
+ gem 'rake'
13
+ end
data/Guardfile ADDED
@@ -0,0 +1,10 @@
1
+ guard 'rspec', :version => 2 do
2
+ watch(%r{^spec/.+_spec\.rb$})
3
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
4
+ watch('spec/spec_helper.rb') { "spec" }
5
+ end
6
+
7
+ guard 'bundler' do
8
+ watch('Gemfile')
9
+ watch('omniauth-gov.gemspec')
10
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,7 @@
1
+ Copyright (c) 2011 Michael Bleigh and Intridea, Inc.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,142 @@
1
+ # OmniAuth Gov
2
+
3
+ Estratégia omniauth para integração do Login Único do governo brasileiro ao autentiador devise.
4
+
5
+ ## Instalação
6
+
7
+ ```ruby
8
+ gem 'omniauth', '1.9.1'
9
+ gem "omniauth-rails_csrf_protection", '0.1.2'
10
+ gem 'omniauth-oauth2'
11
+ gem 'omniauth-gov', '~> 0.1.8'
12
+ ```
13
+
14
+ ## Configuração devise
15
+
16
+ Em `config/initializers/devise.rb.rb`
17
+
18
+ ```ruby
19
+ Devise.setup do |config|
20
+ # ...
21
+ config.omniauth :gov,
22
+ ENV['client_id'],
23
+ ENV['client_secret'],
24
+ scope: 'openid+email+profile+govbr_confiabilidades+',
25
+ callback_path: '/callback-da-aplicacao',
26
+ client_options: {
27
+ site: 'https://sso.acesso.gov.br', # Ambiente de produção.
28
+ authorize_url: 'https://sso.acesso.gov.br/authorize', # Ambiente de produção.
29
+ token_url: 'https://sso.acesso.gov.br/token' # Ambiente de produção.
30
+ }
31
+
32
+ config.omniauth_path_prefix = '/prefixo-devise/prefixo-omniauth'
33
+ end
34
+ ```
35
+
36
+ ## Initializer
37
+ Em `config/initializer/omniauth.rb`
38
+
39
+ ```ruby
40
+ OmniAuth.config.full_host = "https://endereco-do-app.gov.br"
41
+ OmniAuth.config.logger = Rails.logger
42
+ ```
43
+
44
+ ## Route
45
+ Em `config/routes.rb`
46
+ ```ruby
47
+ # ...
48
+ devise_for :users, controllers: {
49
+ # ...
50
+ :omniauth_callbacks => 'auth/omniauth_callbacks'
51
+ }
52
+
53
+ # opcional: redirecionar url de callback para o callback do devise
54
+ devise_scope :user do
55
+ get 'url-de-callback', to: 'auth/omniauth_callbacks#gov'
56
+ end
57
+
58
+ ```
59
+
60
+ ## Controller
61
+ Em `controllers/auth/omniauth_callbacks_controller.rb`
62
+
63
+ ```ruby
64
+ # frozen_string_literal: true
65
+
66
+ class Auth::OmniauthCallbacksController < Devise::OmniauthCallbacksController
67
+ skip_before_action :verify_authenticity_token
68
+
69
+ def gov
70
+ @user = User.from_gov_br_omniauth(request.env["omniauth.auth"]["info"])
71
+
72
+ if @user.id.present?
73
+ sign_in_and_redirect @user, :event => :authentication
74
+ set_flash_message(:notice, :success, :kind => "Login Unico") if is_navigational_format?
75
+ else
76
+ end
77
+ end
78
+
79
+ def failure
80
+ redirect_to root_path
81
+ end
82
+
83
+ end
84
+ ```
85
+
86
+ ## Model User
87
+ Em `model/user.rb`
88
+ ```ruby
89
+ devise :database_authenticatable,
90
+ # ...
91
+ :omniauthable, omniauth_providers: %i[gov]
92
+
93
+ # ...
94
+ def self.from_gov_br_omniauth(info)
95
+ # Exemplo hash info
96
+ # {
97
+ # "id": 1702579345,
98
+ # "cpf": '99999999999',
99
+ # "nome_social": 'Nome Social',
100
+ # "email_verified": true,
101
+ # "profile": 'https://servicos.staging.acesso.gov.br/',
102
+ # "username": '99999999999',
103
+ # "picture": raw_info["picture"],
104
+ # "name": raw_info["name"],
105
+ # "email": raw_info["email"],
106
+ # }
107
+ user = User.find_by_email(info["email"]) # ou outra chave
108
+
109
+ unless user.nil?
110
+ user.update_attributes(provider: 'login-unico', uid: info["id"])
111
+ else
112
+ name = info["name"]
113
+ email = info["email"]
114
+ user = User.new do |user|
115
+ user.name = name
116
+ user.email = email
117
+ end
118
+ user.skip_confirmation!
119
+ user.save
120
+ end
121
+
122
+ return user
123
+ end
124
+
125
+ ```
126
+
127
+ ## View
128
+ Em `sessions/new.html.erb`
129
+ ```ruby
130
+ <%= button_to omniauth_authorize_path(resource_name, :gov), class: 'gov-br-btn sign-in br-button middle sign-in w-100 is-primary mt-3 mb-3', data: { turbo: false } do %>
131
+ <i class="icon fa fa-user fa-lg" style="color: rgb(255, 255, 255);"></i>&nbsp;
132
+ <span style="font-weight: normal;">Entrar com</span>&nbsp;
133
+ <span style="font-size: 20px; font-weight: bold;"> gov.br</span>
134
+ <% end %>
135
+ ```
136
+
137
+ ## Licença
138
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
139
+
140
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
141
+
142
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new
6
+
7
+ desc 'Run specs'
8
+ task :default => :spec
@@ -0,0 +1,105 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GovBr
4
+ # FlatParamsEncoder manages URI params as a flat hash. Any Array values repeat
5
+ # the parameter multiple times.
6
+ module ParamsEncoder
7
+ class << self
8
+ extend Forwardable
9
+ def_delegators :'Faraday::Utils', :escape, :unescape
10
+ end
11
+
12
+ # Encode converts the given param into a URI querystring. Keys and values
13
+ # will converted to strings and appropriately escaped for the URI.
14
+ #
15
+ # @param params [Hash] query arguments to convert.
16
+ #
17
+ # @example
18
+ #
19
+ # encode({a: %w[one two three], b: true, c: "C"})
20
+ # # => 'a=one&a=two&a=three&b=true&c=C'
21
+ #
22
+ # @return [String] the URI querystring (without the leading '?')
23
+ def self.encode(params)
24
+ return nil if params.nil?
25
+
26
+ unless params.is_a?(Array)
27
+ unless params.respond_to?(:to_hash)
28
+ raise TypeError,
29
+ "Can't convert #{params.class} into Hash."
30
+ end
31
+ params = params.to_hash
32
+ params = params.map do |key, value|
33
+ key = key.to_s if key.is_a?(Symbol)
34
+ [key, value]
35
+ end
36
+
37
+ # Only to be used for non-Array inputs. Arrays should preserve order.
38
+ params.sort! if @sort_params
39
+ end
40
+
41
+ # The params have form [['key1', 'value1'], ['key2', 'value2']].
42
+ buffer = +''
43
+ params.each do |key, value|
44
+ encoded_key = escape(key)
45
+ if value.nil?
46
+ buffer << "#{encoded_key}&"
47
+ elsif value.is_a?(Array)
48
+ if value.empty?
49
+ buffer << "#{encoded_key}=&"
50
+ else
51
+ value.each do |sub_value|
52
+ encoded_value = escape(sub_value)
53
+ buffer << "#{encoded_key}=#{encoded_value}&"
54
+ end
55
+ end
56
+ else
57
+ encoded_value = (key == 'scope') ? value : escape(value)
58
+ buffer << "#{encoded_key}=#{encoded_value}&"
59
+ end
60
+ end
61
+ buffer.chop
62
+ end
63
+
64
+ # Decode converts the given URI querystring into a hash.
65
+ #
66
+ # @param query [String] query arguments to parse.
67
+ #
68
+ # @example
69
+ #
70
+ # decode('a=one&a=two&a=three&b=true&c=C')
71
+ # # => {"a"=>["one", "two", "three"], "b"=>"true", "c"=>"C"}
72
+ #
73
+ # @return [Hash] parsed keys and value strings from the querystring.
74
+ def self.decode(query)
75
+ return nil if query.nil?
76
+
77
+ empty_accumulator = {}
78
+
79
+ split_query = (query.split('&').map do |pair|
80
+ pair.split('=', 2) if pair && !pair.empty?
81
+ end).compact
82
+ split_query.each_with_object(empty_accumulator.dup) do |pair, accu|
83
+ pair[0] = unescape(pair[0])
84
+ pair[1] = true if pair[1].nil?
85
+ if pair[1].respond_to?(:to_str)
86
+ pair[1] = unescape(pair[1].to_str.tr('+', ' '))
87
+ end
88
+ if accu[pair[0]].is_a?(Array)
89
+ accu[pair[0]] << pair[1]
90
+ elsif accu[pair[0]]
91
+ accu[pair[0]] = [accu[pair[0]], pair[1]]
92
+ else
93
+ accu[pair[0]] = pair[1]
94
+ end
95
+ end
96
+ end
97
+
98
+ class << self
99
+ attr_accessor :sort_params
100
+ end
101
+
102
+ # Useful default for OAuth and caching.
103
+ @sort_params = true
104
+ end
105
+ end
@@ -0,0 +1,134 @@
1
+ # lib/omniauth/strategies/gov.rb
2
+ require 'omniauth-oauth2'
3
+ require "uri"
4
+
5
+ module OmniAuth
6
+ module Strategies
7
+ class Gov < OmniAuth::Strategies::OAuth2
8
+ option :name, 'gov'
9
+ option :pkce, true
10
+
11
+ credentials do
12
+ hash = {"access_token" => access_token.token}
13
+ hash["id_token"] = access_token.params["id_token"]
14
+ hash["refresh_token"] = access_token.refresh_token if access_token.expires? && access_token.refresh_token
15
+ hash["expires_at"] = access_token.expires_at if access_token.expires?
16
+ hash["expires"] = access_token.expires?
17
+ hash
18
+ end
19
+
20
+ info do
21
+ prune!({
22
+ "id": raw_info['auth_time'],
23
+ "cpf": raw_info["sub"],
24
+ "nome_social": raw_info["social_name"],
25
+ "email_verified": raw_info["email_verified"],
26
+ "profile": raw_info["profile"],
27
+ "username": raw_info["preferred_username"],
28
+ "picture": raw_info["picture"],
29
+ "name": raw_info["name"],
30
+ "email": raw_info["email"],
31
+ })
32
+ end
33
+
34
+ uid { raw_info['auth_time'] }
35
+
36
+ extra do
37
+ {
38
+ 'raw_info': raw_info
39
+ }
40
+ end
41
+
42
+ def client
43
+ options.client_options.merge!({connection_opts: {request: {params_encoder: GovBr::ParamsEncoder}}})
44
+ ::OAuth2::Client.new(options.client_id, options.client_secret, deep_symbolize(options.client_options))
45
+ end
46
+
47
+ def request_phase
48
+ redirect client.auth_code.authorize_url({:redirect_uri => callback_url}.merge(authorize_params))
49
+ end
50
+
51
+ def raw_info
52
+ @raw_info ||= JWT.decode(credentials["id_token"], nil, false)[0]
53
+ end
54
+
55
+ def prune!(hash)
56
+ hash.delete_if do |_, value|
57
+ prune!(value) if value.is_a?(Hash)
58
+ value.nil? || (value.respond_to?(:empty?) && value.empty?)
59
+ end
60
+ end
61
+
62
+ def authorize_params # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
63
+ options.authorize_params[:state] = SecureRandom.hex(24)
64
+ options.authorize_params[:client_id] = options[:client_id]
65
+ options.authorize_params[:scope] = options[:scope]
66
+ options.authorize_params[:response_type] = 'code'
67
+ options.authorize_params[:nonce] = SecureRandom.hex[0..11]
68
+ params = options.authorize_params
69
+ .merge(options_for("authorize"))
70
+ .merge(pkce_authorize_params)
71
+
72
+ session["omniauth.pkce.verifier"] = options.pkce_verifier if options.pkce
73
+ session["omniauth.state"] = params[:state]
74
+
75
+ params
76
+ end
77
+
78
+ def callback_url
79
+ full_host = OmniAuth.config.full_host
80
+ callback_path = options.callback_path
81
+ normalize_url(full_host+callback_path)
82
+ end
83
+
84
+ def normalize_url(url, force_https: true, strip_trailing_slash: true)
85
+ url = url.strip
86
+
87
+ # Adiciona protocolo se não existir
88
+ url = "http://#{url}" unless url =~ %r{^https?://}i
89
+
90
+ begin
91
+ uri = URI.parse(url)
92
+
93
+ # Força HTTPS se habilitado
94
+ uri.scheme = force_https ? "https" : (uri.scheme || "http")
95
+
96
+ # Normaliza host
97
+ uri.host = uri.host.downcase if uri.host
98
+
99
+ # Normaliza path:
100
+ if uri.path
101
+ # Troca // repetidos por /
102
+ uri.path = uri.path.gsub(%r{/+}, "/")
103
+ # Remove barra final se configurado (mas não no caso de root "/")
104
+ if strip_trailing_slash && uri.path != "/" && uri.path.end_with?("/")
105
+ uri.path = uri.path.chomp("/")
106
+ end
107
+ end
108
+
109
+ # Ordena query params (se houver)
110
+ if uri.query
111
+ query_params = URI.decode_www_form(uri.query).uniq.sort
112
+ uri.query = URI.encode_www_form(query_params)
113
+ end
114
+
115
+ uri.to_s
116
+ rescue URI::InvalidURIError
117
+ nil
118
+ end
119
+ end
120
+
121
+ def build_access_token
122
+ verifier = request.params["code"]
123
+
124
+ atoken = client.auth_code.get_token(
125
+ verifier,
126
+ {"grant_type": "authorization_code", "code": verifier, "redirect_uri": callback_url, "code_verifier": session["omniauth.pkce.verifier"]},
127
+ {"Content-Type" => "application/x-www-form-urlencoded", "Authorization" => "Basic #{Base64.strict_encode64(options.client_id+":"+options.client_secret)}" })
128
+ atoken
129
+ end
130
+ end
131
+ end
132
+ end
133
+
134
+ OmniAuth.config.add_camelization 'gov', 'Gov'
@@ -0,0 +1,5 @@
1
+ module OmniAuth
2
+ module Gov
3
+ VERSION = "0.1.13"
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ require "omniauth-gov/version"
2
+ require 'gov_br/params_encoder'
3
+ require 'omniauth/strategies/gov'
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/omniauth-gov/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Jonas Ricardo", "Renato de Souza"]
6
+ gem.email = ["jonas.campos@yahoo.com.br", "renatocdesouza@gmail.com"]
7
+ gem.description = %q{OmniAuth strategy for Gov.br (login.gov.br / govbr).}
8
+ gem.summary = %q{OmniAuth strategy for Gov.br (login.gov.br / govbr).}
9
+ gem.homepage = "https://github.com/jonasrscampos/omniauth-gov"
10
+ gem.license = "MIT"
11
+
12
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
13
+ gem.files = `git ls-files`.split("\n")
14
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
+ gem.name = "omniauth-gov"
16
+ gem.require_paths = ["lib"]
17
+ gem.version = OmniAuth::Gov::VERSION
18
+
19
+ gem.add_dependency 'omniauth', '>= 1.9.1', '< 3.0'
20
+ gem.add_dependency 'omniauth-oauth2', '>= 1.7'
21
+ gem.add_development_dependency 'rspec', '~> 3.5'
22
+ gem.add_development_dependency 'faraday', '~> 2.9'
23
+ gem.add_development_dependency 'rack-test'
24
+ gem.add_development_dependency 'simplecov'
25
+ gem.add_development_dependency 'webmock'
26
+ end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-gov
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.11
4
+ version: 0.1.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonas Ricardo
8
8
  - Renato de Souza
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2025-09-23 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: omniauth
@@ -17,34 +16,34 @@ dependencies:
17
16
  requirements:
18
17
  - - ">="
19
18
  - !ruby/object:Gem::Version
20
- version: 1.9.2
19
+ version: 1.9.1
21
20
  - - "<"
22
21
  - !ruby/object:Gem::Version
23
- version: '2.0'
22
+ version: '3.0'
24
23
  type: :runtime
25
24
  prerelease: false
26
25
  version_requirements: !ruby/object:Gem::Requirement
27
26
  requirements:
28
27
  - - ">="
29
28
  - !ruby/object:Gem::Version
30
- version: 1.9.2
29
+ version: 1.9.1
31
30
  - - "<"
32
31
  - !ruby/object:Gem::Version
33
- version: '2.0'
32
+ version: '3.0'
34
33
  - !ruby/object:Gem::Dependency
35
34
  name: omniauth-oauth2
36
35
  requirement: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - ">="
39
38
  - !ruby/object:Gem::Version
40
- version: '0'
39
+ version: '1.7'
41
40
  type: :runtime
42
41
  prerelease: false
43
42
  version_requirements: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - ">="
46
45
  - !ruby/object:Gem::Version
47
- version: '0'
46
+ version: '1.7'
48
47
  - !ruby/object:Gem::Dependency
49
48
  name: rspec
50
49
  requirement: !ruby/object:Gem::Requirement
@@ -115,34 +114,31 @@ dependencies:
115
114
  - - ">="
116
115
  - !ruby/object:Gem::Version
117
116
  version: '0'
118
- - !ruby/object:Gem::Dependency
119
- name: uri
120
- requirement: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- type: :development
126
- prerelease: false
127
- version_requirements: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- description: OmniAuth strategy for integrating authentication with Brazilian Gov.br
133
- using OmniAuth and OAuth2.
117
+ description: OmniAuth strategy for Gov.br (login.gov.br / govbr).
134
118
  email:
135
119
  - jonas.campos@yahoo.com.br
136
120
  - renatocdesouza@gmail.com
137
121
  executables: []
138
122
  extensions: []
139
123
  extra_rdoc_files: []
140
- files: []
124
+ files:
125
+ - ".github/workflows/ruby.yml"
126
+ - ".gitignore"
127
+ - ".rspec"
128
+ - Gemfile
129
+ - Guardfile
130
+ - LICENSE.txt
131
+ - README.md
132
+ - Rakefile
133
+ - lib/gov_br/params_encoder.rb
134
+ - lib/omniauth-gov.rb
135
+ - lib/omniauth-gov/version.rb
136
+ - lib/omniauth/strategies/gov.rb
137
+ - omniauth-gov.gemspec
141
138
  homepage: https://github.com/jonasrscampos/omniauth-gov
142
139
  licenses:
143
140
  - MIT
144
141
  metadata: {}
145
- post_install_message:
146
142
  rdoc_options: []
147
143
  require_paths:
148
144
  - lib
@@ -157,8 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
153
  - !ruby/object:Gem::Version
158
154
  version: '0'
159
155
  requirements: []
160
- rubygems_version: 3.5.20
161
- signing_key:
156
+ rubygems_version: 3.6.9
162
157
  specification_version: 4
163
- summary: Official OmniAuth strategy for GitHub.
158
+ summary: OmniAuth strategy for Gov.br (login.gov.br / govbr).
164
159
  test_files: []