Dicas Omniauth

Como todos nós sabemos, é um dos métodos mais populares de inscrição em muitos sites por meio de outros serviços de terceiros, e neste ponto provavelmente você deve saber como implementar com o omniauth gem. Mas muitas vezes encontramos alguns problemas durante o desenvolvimento desse recurso sofisticado. Aqui estão minhas recomendações

Proteja suas chaves de API

Muitas vezes colocamos nosso código em repositórios de código aberto sem considerar que outras pessoas (com más intenções) poderiam lê-lo, então fazemos algo assim

Rails.application.config.middleware.use OmniAuth::Builder do
provider
:twitter, '611798630625', 'c699f703f247ee23ce447850'
end

Não é muito perigoso correr e gritar, basta tomar os cuidados necessários e definir essas variáveis ​​dentro do ambiente dos trilhos

Rails.application.config.middleware.use OmniAuth::Builder do
provider
:twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET']
end

Chaves Diferentes para Ambientes

A razão disso é porque alguns provedores de API, como o Facebook, não oferecem suporte a vários retornos de chamada em diferentes urls, então acho que será uma boa prática fazer isso

Rails.application.config.middleware.use OmniAuth::Builder do
provider
:twitter, ENV[Rails.env]['TWITTER_KEY'], ENV[Rails.env]['TWITTER_SECRET']
end

sim! Eu sei que é muita configuração, mas isso permite que você trabalhe e teste melhor com seu provedor terceirizado

Google Apps x Google Oauth2

Uma vez que todos têm uma conta do Google, todos querem usá-la (isso porque alguns usuários se sentem mais confiantes para fazer o login através do Google em vez de uma rede social comum como o Facebook ou Twitter). Mas qual é a melhor solução?

aplicativos do Google

Para grupos que usam aplicativos do Google, esta é a maneira mais fácil:
inclua a gema

gem 'omniauth-google-apps'

Depois de adicionar a gema, você precisará exigir algumas bibliotecas em seu arquivo inicializador omniauth

require 'openid/store/filesystem'

e como não precisamos criar chaves de API, você usará uma id aberta

provider :google_apps, store: OpenID::Store::Filesystem.new('/tmp'), domain: 'yourdomain.com'

e isso funcionará para um nome de domínio específico

Google Oauth2

Para uma conta normal do gmail, mas
aqui precisaremos adicionar chaves de API … mas onde? Ok. Vá aqui e obtenha algumas chaves de API para Oauth2 https://code.google.com/apis/console e também não se esqueça de adicionar algumas permissões para as APIs do Google que você deseja usar.

O resto da configuração do omniauth é quase o mesmo, mas para o uso da api, será outro show.

E se você seguir minhas recomendações

isso será ótimo