Mam aplikację Rails 3.1, która używa Devise do uwierzytelniania za pomocą prostego modelu użytkownika z e-mailem, hasłem itp. Muszę być w stanie uwierzytelnić się z aplikacji iPhone. Jak mogę ujawnić tę funkcjonalność? Szerokie odpowiedzi są w porządku, ponieważ nie jestem pewien, jakie są moje opcje.Ujawnianie Rails/Devise Uwierzytelnianie dla aplikacji iOS
Odpowiedz
Najszybszym sposobem byłoby po prostu włączyć http_authenticatable
i podać nazwę użytkownika i hasło za pomocą podstawowego uwierzytelniania HTTP. Chociaż jest to najprostszy sposób, oznacza to, że musisz przechowywać hasło użytkownika w postaci zwykłego tekstu i wysyłać je wraz z każdym zgłoszonym żądaniem.
Lepszą opcją jest uwierzytelnianie tokena, można go przekazać za pomocą parametrów lub HTTP Basic Auth (w takim przypadku można ustawić hasło na "X" i token na nazwę użytkownika). Zaletą tego jest to, że możesz po prostu użyć nazwy użytkownika/hasła, aby uzyskać token, a następnie użyć go do dalszego uwierzytelniania.
Najprostszym sposobem na uwierzytelnienie tokena z minimalną ilością kodu byłoby włączenie uwierzytelniania HTTP w trybie tworzenia i skonfigurowanie nowego kontrolera, który wymaga zalogowania użytkownika, a wszystko, co robi, to wyprowadzenie wyniku reset_authentication_token
. Gdy masz już token, przekażesz go do wszystkich przyszłych żądań uwierzytelnienia HTTP, aby je zalogować.
Czy włączasz http_authenticatable, a następnie upuszczasz horrid Username/Password, jeśli próbujesz zalogować się ze strony? Nadal potrzebuję użytkowników do zalogowania się za pośrednictwem strony internetowej i przejrzystego interfejsu. –
@Zachary Anker Dzięki za odpowiedź. Czy możesz potwierdzić, że rozumiem to poprawnie ... Urządzenie trafi http://somesite.com/users/sign_in, przekazując nazwę użytkownika i hasło jako parametry formularza żądania POST. Railsy sprawdzałyby te szczegóły, a jeśli poprawne zwróciłyby token. Urządzenie będzie następnie przechowywać token i używać go w każdej przyszłej komunikacji. Skąd więc szyny pobierają token? Czy generuje unikalny token dla każdego użytkownika. Czy token traci ważność? – Undistraction
@Wayfarer Nie powinien. Dopóki jest to format nawigacyjny, taki jak HTML, nie powinien otwierać okna dialogowego uwierzytelniania HTTP. Jeśli nie chcesz, aby kiedykolwiek się pojawił, możesz również zaimplementować sprawdzanie hasła samodzielnie w kontrolerze, który zwraca token uwierzytelniania. –
- 1. Dodaj przycisk Ujawnianie MKPointAnnotation
- 2. Uwierzytelnianie dla aplikacji API REST API Sinatra
- 3. uwierzytelnianie aplikacji sieciowej dojo
- 4. Uwierzytelnianie dla aplikacji Symfony2 api (do korzystania z aplikacji mobilnych)
- 5. Czy funkcja TWRequest iOS API obsługuje uwierzytelnianie tylko do aplikacji?
- 6. Uwierzytelnianie w aplikacji Google Engine z urządzenia z systemem iOS
- 7. Wersja aplikacji dla systemu iOS
- 8. Uprawnienia roota dla aplikacji iOS
- 9. Progresywne ujawnianie w C++ API
- 10. Podstawowe uwierzytelnianie dla WCF
- 11. Uwierzytelnianie Facebook iOS SDK i paszport-facebook
- 12. Gdata python Uwierzytelnianie aplikacji Google
- 13. Dwukierunkowe uwierzytelnianie SSL dla kolby
- 14. Ujawnianie fragmentów w React Native Android ViewManager
- 15. Automatyczne wypełnianie hasła dla aplikacji iOS
- 16. Wiele środowisk Fabric Crashlytics dla aplikacji iOS
- 17. Kontrola pola wyboru dla aplikacji iOS
- 18. Idealne wykorzystanie pamięci dla aplikacji na iOS.
- 19. Uwierzytelnianie HTTP Proxy w iOS 4.3
- 20. Niestandardowe uwierzytelnianie za pomocą aplikacji mobilnych Azure
- 21. Uwierzytelnianie HTTP w serwerze dev aparatu aplikacji
- 22. Ujawnianie metod statycznych za pomocą klas proxy
- 23. Uwierzytelnianie na podstawie tokenu z aplikacji mobilnej
- 24. Uwierzytelnianie Sails.js dla działań modelowych
- 25. Ujawnianie funkcji z Java do Rhino
- 26. Ujawnianie zmiennych prywatnych w module modułu ujawniającego
- 27. Dlaczego ujawnianie błędnych reprezentacji iteratorów jest złe?
- 28. uwierzytelnianie na aplikacji GUI napisane na perl
- 29. Jak wprowadzić uwierzytelnianie użytkownika do aplikacji mobilnej?
- 30. Uwierzytelnianie użytkownika w aplikacji tornado websocket
Wszystkie kontrolery devse odpowiadają na json i xml, dzięki czemu interfejs REST jest całkiem możliwy – zsquare
Szczerze mówiąc, mam dokładnie ten sam problem. Rozumiem REST, a moje API działa dobrze. Ale nie mogę pojąć koncepcji logowania z urządzenia iOS. (Używam RestKit jako ramy, jeśli to pomaga). Czy ktoś może wykonać czynności niezbędne do tego, aby system iOS mógł uwierzytelnić się w aplikacji szyny, a następnie bez przerwy wywoływać wywołania REST w celu uzyskania informacji? Jak przechowujesz sesję? Czy możesz? Czy przy każdej próbie połączenia musisz podać dane logowania użytkownika? Czy możesz użyć jakiegoś tokena? Jak sformatować połączenie, aby uzyskać informacje? Pomoc też byłaby dla mnie wspaniała !! –
@Wayfarer Dokładnie. Sądzę, że usługa sieci Web musi przekazać jakiś token do urządzenia po pomyślnym uwierzytelnieniu, które urządzenie może wykorzystać do identyfikacji przy każdej komunikacji, ale nie jestem pewien, jak to działałoby w praktyce. Oczywiście model użytkownika może przechowywać jakiś unikalny token dla każdego użytkownika, który jest udostępniany po uwierzytelnieniu, ale nie jestem pewien co do mechaniki obsługi tego. – Undistraction