6

У меня есть приложение для front-end rails, которое также использует AngularJs, а также ядро ​​Api также написано в Rails (используется камень rails-api). Я внедрил систему входа для этой системы. Теперь я хочу реализовать login with facebook/google. Я искал в Интернете, и до сих пор я нашел this блог. Из этого блога я получил идею внедрения google OAuth 2 в Android с Rails в качестве backend. Но в моем случае я хочу реализовать google OAuth 2 в своем внешнем приложении (Rails + Angular) с Rails в качестве backend.Google/Facebook OAuth2 в Rails Front-end приложение с rails-api as webservice

Для осуществления google OAuth 2, Переднее приложение должно запросить token до google oauth2 authorization server, и я понятия не имею, как это сделать.

Кроме того, хорошо использовать рельсы для запроса токена, или я могу использовать Угловое для этой части. Какая была бы лучшая практика для этой цели?

+0

Попробуйте использовать 'hello.js' в своем интерфейсе, а затем проверьте токен в своем бэкэнд. –

+0

Хорошо, я посмотрю. Спасибо BTW – SujitS

+0

Добро пожаловать .... –

ответ

2

Во-первых, вы должны реализовать Google Войти в front-end. Here - это документация Google по внедрению входа google в javascript. Google предоставит вам информацию о . Профиль пользователя. После получения информации вы можете отправить ее вам. На стороне сервера/Бэкэнд вы можете делать все с этой информацией. Это на вас.

Кроме того, this документация может быть полезна для вашего случая.

+0

Спасибо @Madan, ты спас мой день. – SujitS

1

Вы можете использовать omniauth-google-oauth2 gem

Основная идея заключается в том, чтобы реализовать это в Devise.

Хорошее решение Вы можете найти this.

С этим решением это не проблема, если вы используете интерфейс/бэкэнд. Таким образом, Вы должны обратить внимание на следующие шаги:

Пользователь Модель:

devise :database_authenticatable, ... , :omniauthable 

Devise.rb:

config.omniauth :google_oauth2, ENV['GP_key'], ENV['GP_secret'], 
    { 
        name: 'google', 
        scope: 'plus.login, userinfo.email, userinfo.profile, 
          ... 
          youtubepartner, youtubepartner-channel-audit', 
        prompt: "select_account" 
    } 

Следующие шаги, как в растворах ..

В моем проекте он также работает с интерфейсом/backend. Итак, если вы найдете трудности, я буду рад помочь вам в решении ...

Обновление: для Android-версий интерфейса. Вы не должны выполнять аутентификацию/авторизацию в Google. Вы должны сделать это на стороне сервера. Вы можете использовать WebTools или другие подходящие способы для прогулок по Devise и Google auth pages ...

+0

Можете ли вы прокомментировать некоторые рабочие примеры. Я больше смутился этим. – SujitS

+2

Вы писали: «Для реализации google OAuth 2 переднее приложение должно запросить токен на сервере авторизации google oauth2, и я понятия не имею, как это сделать.'--- На мой взгляд, это не хорошо, потому что вы должны делать auth. процесс на стороне сервера. Зачем? По умолчанию в RoR мы предоставляем пользователю auth с помощью Devise. Мы могли бы объяснить это решение Devise для omniauth через Google. Пожалуйста, прочитайте статью http://sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin/, потому что это хорошее решение. В работоспособном состоянии. –