6

Mam moją aplikację szyny front-end, która również używa AngularJs i mam również backend APi również napisany w Rails (używany klejnot rails-api). Mam zaimplementowany system logowania do tego systemu. Teraz chcę zaimplementować login with facebook/google. Przeszukałem internet i do tej pory znalazłem bloga this. Z tego bloga wpadłem na pomysł wdrożenia google OAuth 2 w systemie Android z Railsami jako zapleczem. Ale w moim przypadku chcę wdrożyć google OAuth 2 w mojej aplikacji front-end (Rails + Angular) z Railsami jako zapleczem.Google/Facebook OAuth2 w Rails Aplikacja Front-end z szynami-api jako usługa internetowa

Do implementacji google OAuth 2, aplikacja Front-end musi zażądać od token do google oauth2 authorization server i nie mam pojęcia, jak to zrobić.

Co więcej, czy dobrze jest korzystać z szyn do zażądania tokena, czy też mogę użyć Angulara do tej części. Jaka byłaby najlepsza praktyka w tym celu?

+0

Spróbuj użyć 'hello.js' w swoim interfejsie, a następnie sprawdź token w swoim backend. –

+0

Dobra, przyjrzę się temu. Dzięki BTW – SujitS

+0

Nie ma za co .... –

Odpowiedz

2

Po pierwsze, trzeba wdrożyć google logowanie w front-end. Here to dokumentacja google dotycząca implementacji logowania google w javascript. google dostarczy Ci informacje na temat profilu użytkownika użytkownika. Po otrzymaniu informacji możesz wysłać ją do serwisu. Po stronie serwera/Backend możesz zrobić cokolwiek z tymi informacjami. To na ciebie.

Dodatkowo, dokumentacja this może być pomocna w twojej sprawie.

+0

Dzięki @Madan, uratowałeś mój dzień. – SujitS

1

Można użyć omniauth-google-oauth2 gem

Główną ideą jest, aby wdrożyć to w Devise.

Dobre rozwiązanie Można znaleźć this.

Dzięki temu rozwiązaniu nie ma problemu z używaniem frontendu/backendu. Tak, należy zwrócić uwagę na kolejnych etapach:

modelu użytkownika:

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" 
    } 

Kolejne etapy jak w rozwiązaniach ..

W moim projekcie działa również z frontendem/backendem. Tak więc, jeśli napotkasz na trudności, chętnie pomogę w rozwiązaniu problemu ...

Aktualizacja: dla wersji frontend na Androida. Nie powinieneś wykonywać interfejsu frontów uwierzytelniania/autoryzacji w Google. Powinieneś to zrobić po stronie zaplecza. Można użyć WebTools lub inne odpowiednie sposoby do chodzenia po Devise i Google auth pages ...

+0

Czy możesz podać kilka praktycznych przykładów. Byłem bardziej zdezorientowany. – SujitS

+2

Napisałeś: 'Do implementacji Google OAuth 2, aplikacja Front-end musi zażądać tokenu do serwera autoryzacji Oauth2 i nie mam pojęcia, jak to zrobić.'--- Moim zdaniem, to nie jest dobre, ponieważ powinieneś zrobić auth. proces po stronie zaplecza. Czemu? Domyślnie w RoR zapewniamy użytkownikowi autoryzację w Devise. Moglibyśmy wyjaśnić autorowi tego Dewisego omniautha za pośrednictwem Google. Proszę przeczytać artykuł http://sourcey.com/rails-4-omniauth-using-devise-withtwfame-facebook-and-linkedin/ for it's good solution. W praktyce. –

Powiązane problemy