Dla aplikacji webowej sprawa jest prosta: Devise + Omniauth, logowanie przez fejsa bangla bez problemu.
Ale co zrobić jeśli logowanie przez fejsa ma być wykonane w aplikacji mobilnej (iPhone/Android), komunikującej się z appką railsową przez API?
Czy logowanie przez fejsa powinno być zrobione po stronie telefonu czy też po stronie serwera (czyli znowu OmniAuth?)?
Robił to ktoś? Ewentualnie ma jakieś linki na ten temat?
Chyba trzeba sobie wyobrazić, że przeglądarka to telefon i wziąć pod uwagę, że nie przeglądarka na telefonie ale aplikacja która musi jakby grać jej rolę, czyli de facto zrobić parę requestów tu i tam. Jak dla mnie chyba robota jest po obu stronach. Problem jest taki, że cała idea omni polega na tym, że logujesz się w FB i appka nie widzi twoich danych prawda? Tutaj musiałbyś je wprowadzić w appce która zrobiłaby request do FB więc cała idea jakby nie ma sensu bo musisz podać swoje dane do FB zewnętrznemu usługodawcy (security leży i kwiczy). W przeglądarce to jest spoko bo ona odpowiada za trzymanie tych wszystkich sesji gdzieś w tle i często do FB jesteś już gdzieś w tle zalogowany więc to oszczędza roboty userowi (nie wprowadza danych tylko daje permission). Jeśli twoja apkka mobilna będzie grać rolę przeglądarki to i tak user nie ma z tego żadnego zysku. Poza tym na telefonach często FB używasz przez inną dedykowaną aplikację a nie używasz do tego przeglądarki.
Reasumując: Ma to mało sensu. Dlatego też np stopango wymaga od Ciebie także normalnego loginu i hasła jeśli chcesz używać go przez aplikację mobilną. Moim zdaniem potrzebujesz zrobić logowanie przez api token, który użytkownik musi wprowadzić w telefonie. Jak mu ktoś ukradnie komórkę to reset api tokenu i żadna apka nie może używać a samego hasła nie musi on zmieniać (flaker zdaje się ma api key). Tylko nie wiem czy cię to satysfakcjonuje bo chyba user nie będzie mógł uzywać integracji z FB (np post na wall z twojej mobile aplikajci) ale jeśli chodzi o samo logowanie to w tą stronę bym szedł.
Nawet jak nie ma to można to zrobić. W strobie robiłem integrację z facebookiem i twitterem w phonegapie, tą samą techniką dałoby się to zrobić w aplikacji natywnej. Ale jeżeli powyższa integracja działa, to nie polecam, bo trzeba otworzyć WebView/WebkitView (czy jak tam się te widoki przeglądarkowe nazywają).
Hej, znalazłem stary topic, który mnie mocno interesuje. Piszę backend używając rails-api, frontend napisany jest w Angluarze (który pisze druga osoba). Mamy teraz do zrobienia właśnie logowanie przez facebook i nie wiem za bardzo na razie z której strony to ugryźć. Czy to bardziej zadanie frontendu i tylko jakaś komunikacja z backendem, czy raczej całe zadanie dla backendu?
Ktoś może miałby ciekawy przykład? Ciężko wyguglać coś sensownego.
To jak jak zrealizujesz jest zalezne od Ciebie. Jesli masz single-page app’a calosc obslugujesz za pomoca https://developers.facebook.com/docs/reference/dialogs/oauth - sam popup otwierasz z poziomu JS’a, to co zwraca Ci facebook obslugujesz na backend’zie (token etc), a potem dane nt zalogowanego przerzucasz do Angular’a - tutaj sporo mozna wykombinowac - ja to robilem generujac odpowiedni JS, ktory zmienial stan aplikacji, a potem sam zamykal popup do logowania.