Crie uma API OAuth2 com porteiro e planeje no Rails

Um bom recurso para entender as diferentes concessões disponíveis no OAuth2, verifique este

Adicione o porteiro e planeje ao seu Gemfile no aplicativo API rails. Além disso, não se esqueça de executar os geradores para eles, migrações e criar um aplicativo para obter o app_id e o segredo do doorkeper (/ oauth / applications).

Remova o comentário do bloco “resource_owner_from_credentials” do doorkeeper.rb (lado da API)

resource_owner_from_credentials do |routes|
u
= User.find_for_database_authentication(:email => params[:username])
u
if u && u.valid_password?(params[:password])
end

Para expor a funcionalidade de seus controladores como uma API, eu recomendaria usar rocketpants ou grape (se você quiser algo mais leve).

Chamar do lado do cliente seria o seguinte usando ruby ​​oauth2 gem

require 'oauth2'
callback
= "http://localhost:3001/auth/example/callback"
app_id
= "PROVIDED_BY_DOORKEEPER"
secret
= "PROVIDED_BY_DOORKEEPER"
client
= OAuth2::Client.new(app_id, secret, site: "http://localhost:3000/")
auth_url
= client.auth_code.authorize_url(:redirect_uri => callback)
token
= client.password.get_token('username@example.com', 'password')