Exemplo de autenticação de api rails com Firebase
-
Roda script de setup do rails
bin/setup
-
Copia o arquivo
.env.templatepara.envcp .env.template .env
-
Configura a variável de ambiente
FIREBASE_PROJECT_IDno arquivo.env -
Roda tarefa para gerar certificado do firebase
rails firebase:certificates:request
rails sApós o usuário criar conta ou autenticar com firebase no frontend web ou mobile, basta fazer as requisições para api passando o token do firebase.
Exemplo:
Get user profile
GET /profile
curl -X GET 'http://localhost:3001/profile' -H 'Authorization: Bearer user-token'retorno:
{
"id": 1,
"name": "Wallas Faria da Silva",
"email": "user@email.com",
"phone": null,
"auth_id": "k5LWaAsas4544hhpl7ASIH9nm282",
"auth_provider": "google.com",
"created_at": "2021-01-25T00:51:41.055Z",
"updated_at": "2021-01-25T00:51:41.102Z",
"avatar_url": "http://localhost:3001/rails/active_storage/representations..."
}Update user profile
PUT /profile
curl -X PUT 'http://localhost:3001/profile' \
-H 'Authorization: Bearer user-token' \
-H 'Content-Type: application/json' \
-d '{ "phone": "+5522556644998" }'retorno:
{
"id": 1,
"phone": "+5522556644998",
"name": "Wallas Faria da Silva",
"email": "user@email.com",
"auth_id": "k5LWaAsas4544hhpl7ASIH9nm282",
"auth_provider": "google.com",
"created_at": "2021-01-25T00:51:41.055Z",
"updated_at": "2021-01-25T01:08:00.213Z",
"avatar_url": "http://localhost:3001/rails/active_storage/representations/..."
}