diff --git a/.env.dev b/.env.dev
index 75723cce1ef9a38e5340957170cf567c4b46346f..b3e60250685b3f5a74fc9654de9f63bcec80f952 100644
--- a/.env.dev
+++ b/.env.dev
@@ -37,5 +37,10 @@ RAILS_MAX_THREADS=8
 
 REDIS_HOST=redis
 
+#google
 GOOGLE_KEY=
 GOOGLE_SECRET=
+
+# govbr
+client_id=
+client_secret=
diff --git a/.gitignore b/.gitignore
index 0c0352a5b475ef0a6c3d4778850d35d882584f2f..d0a879d3d7bcfa4173632fe9adc0758fbabc1044 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,3 +40,5 @@ autocomplete-server.service
 /config/sidekiq.yml
 .env
 .env.prod
+public/*
+tmp/*
diff --git a/Gemfile b/Gemfile
index bb639a56af932a488291be40fbbde06ba813d90a..cd8759d33e3fb4952d2658c39aedb1c3488bd397 100644
--- a/Gemfile
+++ b/Gemfile
@@ -148,6 +148,12 @@ gem 'omniauth-facebook'
 gem 'omniauth-twitter'
 gem 'omniauth-google-oauth2', '0.8.2'
 
+# govbr
+gem 'omniauth', '1.9.1'
+gem "omniauth-rails_csrf_protection", '0.1.2'
+gem 'omniauth-oauth2'
+gem 'omniauth-gov', '~> 0.1.8'
+
 gem 'faraday'
 gem 'net-http-persistent'
 
@@ -185,6 +191,4 @@ gem 'elasticsearch', '~> 8.6'
 gem 'multipart-post', '~> 2.0'
 
 gem 'faraday-multipart', '~> 1.0', '>= 1.0.4'
-gem 'tzinfo-data'
-
-
+gem 'tzinfo-data'
\ No newline at end of file
diff --git a/app/controllers/concerns/downloadable_controller.rb b/app/controllers/concerns/downloadable_controller.rb
index e7e872cfeac592c2fa8e506dab3674c567d1b14c..79e4698708ff3b2123656e159a3ce0529e5c98d7 100644
--- a/app/controllers/concerns/downloadable_controller.rb
+++ b/app/controllers/concerns/downloadable_controller.rb
@@ -32,7 +32,7 @@ module DownloadableController
     attachment_name = attachment["name"]
 
     link = attachment["retrieve_link"]
-    source = "https://mecdb4.c3sl.ufpr.br:8443" + link
+    source = "https://mecdb4.c3sl.ufpr.br" + link
     
     require 'open-uri'
    
diff --git a/app/controllers/v1/learning_objects_controller.rb b/app/controllers/v1/learning_objects_controller.rb
index 3030d4552228d79be70d0833a76846d720452243..88326705839ae2d1f63e493e91ad935addf66172 100644
--- a/app/controllers/v1/learning_objects_controller.rb
+++ b/app/controllers/v1/learning_objects_controller.rb
@@ -96,7 +96,7 @@ class V1::LearningObjectsController < ApplicationController
       publisher = LearningObjectPublisher.new(DspaceService.create_client)
       publisher.update_dspace(@learning_object)
 
-      render json: @learning_object, status: :ok
+      render status: :ok
     else
         render json: @learning_object.errors, status: :unprocessable_entity
     end
diff --git a/app/controllers/v1/omniauth_callbacks_controller.rb b/app/controllers/v1/omniauth_callbacks_controller.rb
index 7d00b05286fb0e70802e9d2f0a13201ada3fa03e..e339e455654e1349827d72e303f180a41256c730 100644
--- a/app/controllers/v1/omniauth_callbacks_controller.rb
+++ b/app/controllers/v1/omniauth_callbacks_controller.rb
@@ -35,3 +35,24 @@ require 'open-uri'
     end
 
   end
+
+# frozen_string_literal: true
+
+class Auth::OmniauthCallbacksController < Devise::OmniauthCallbacksController
+	skip_before_action :verify_authenticity_token
+
+	def gov
+		@user = User.from_gov_br_omniauth(request.env["omniauth.auth"]["info"])
+
+		if @user.id.present?
+			sign_in_and_redirect @user, :event => :authentication
+			set_flash_message(:notice, :success, :kind => "Login Unico") if is_navigational_format?	  
+		else
+		end
+	end
+	
+	def failure
+    redirect_to root_path
+	end
+
+end
diff --git a/app/models/user.rb b/app/models/user.rb
index e2c2ec53d1fa0a77af31a11b282549d468e502f9..81f001708b34b23d7d303c780ed333fe72ae15ee 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -615,4 +615,39 @@ class User < ApplicationRecord
   def complaint_reject(params)
   end
 
+  devise :database_authenticatable,
+  # ...
+  :omniauthable, omniauth_providers: %i[gov]
+
+  # ...
+  def self.from_gov_br_omniauth(info)
+    # Exemplo hash info
+    # {
+    #   "id": 1702579345,
+    #   "cpf": '99999999999',
+    #   "nome_social": 'Nome Social',
+    #   "email_verified": true,
+    #   "profile": 'https://servicos.staging.acesso.gov.br/',
+    #   "username": '99999999999',
+    #   "picture": raw_info["picture"],
+    #   "name": raw_info["name"],
+    #   "email": raw_info["email"],
+    # }    
+    user = User.find_by_email(info["email"]) # ou outra chave
+
+    unless user.nil?
+      user.update_attributes(provider: 'login-unico', uid: info["id"])
+    else
+      name = info["name"]
+      email = info["email"]
+      user = User.new do |user|
+        user.name = name
+        user.email = email
+      end
+      user.skip_confirmation!
+      user.save
+    end
+
+    return user
+  end
 end
diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb
index cfc6ce62b5514cb7ffc0ce84d711ccf21613e7b3..6f272e8ae7cf66860fbe3b831ebf140334ec6e54 100644
--- a/config/initializers/devise.rb
+++ b/config/initializers/devise.rb
@@ -288,4 +288,17 @@ Devise.setup do |config|
   # middleware b/c rails-api does not include it.
   # See: http://stackoverflow.com/q/19600905/806956
   config.navigational_formats = [:json]
+
+  config.omniauth :gov,
+      ENV['client_id'],
+      ENV['client_secret'],
+    scope: 'openid+email+profile+govbr_confiabilidades+',
+    callback_path: '/callback-da-aplicacao',
+    client_options: {
+      site: 'https://sso.acesso.gov.br', # Ambiente de produção.
+      authorize_url: 'https://sso.acesso.gov.br/authorize', # Ambiente de produção.
+      token_url: 'https://sso.acesso.gov.br/token' # Ambiente de produção.
+    }
+
+    config.omniauth_path_prefix = '/prefixo-devise/prefixo-omniauth'
 end
diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb
index 0b25772428a7faefdc0c0065918cddf6726b35fb..0652075e2e2aedbc9a86ed546e43bb85628ee49b 100644
--- a/config/initializers/omniauth.rb
+++ b/config/initializers/omniauth.rb
@@ -29,4 +29,5 @@ Rails.application.config.middleware.use OmniAuth::Builder do
 end
 
 OmniAuth.config.allowed_request_methods = [:post, :get]
-OmniAuth.config.full_host = Rails.env.production? ? 'https://api.portalmec.c3sl.ufpr.br' : 'https://api.portlmec.c3sl.ufpr.br'
+OmniAuth.config.full_host = Rails.env.production? ? 'https://api.mecred.c3sl.ufpr.br' : 'https://api.mecred.c3sl.ufpr.br'
+OmniAuth.config.logger = Rails.logger
diff --git a/docker-compose.yml b/docker-compose.yml
index 23ace3b3ac30641dcf691a40f335c532db817b42..922249d96e56e5389b8f8b05730acc68d39dda4c 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -27,7 +27,7 @@ services:
     depends_on:
       - redis
     ports:
-      - "3000:3000"
+      - "3001:3000"
     volumes:
       - .:/app
       - gem_cache:/usr/local/bundle/gems