Web API dla aplikacji webowej i Android - autentykacja

0

Cześć,

Chciałbym poprosić Was o poradę odnośnie architektury, którą chcę zastosować w mojej aplikacji.

Główne elementy

  • Aplikacja webowa (MVC) ASP.NET
  • Klient na Androida
  • później być może inni klienci (iOS, WP)

Wszystko zbudowane w oparciu o Web serwis wykonany Web API (2), który będzie udostępniał pełną funkcjonalność aplikacji web i klientom mobilnym:

  • zakładanie kont
  • logowanie
  • przeglądanie, dodawanie danych przez zalogowanych użytkowników

Powiedzmy, że po zalogowaniu usera wygeneruje jakiś identyfikator sesji/token.
Web API powinno otrzymywać ten token każdorazowo kiedy wykonywana jest akcja jakaś akcja kontrolera.

Chyba muszę ten token przekazywać w dodawkowym headerze HTTP?
Bo przecież w aplikacji Androidowej nie będę miał ciasteczek?

Z androida chyba nie będzie problemu.
A jak załączać ten header np. w requestach AJAX ze strony?
Gdzie wtedy trzymać ten klucz po stronie przeglądarki skoro ajax musi go znać żeby odpytać web api?
Jak to sensownie rozwiązać?

I kolejne pytanie:
Jak rozwiązuje się kwestie ładowania danych np. do tabelki na stronie?
Powiedzmy przy pierwszym wejściu na podstronę z listą warzyw chciałbym żeby serwer zwrócił stronę z już uzupełnioną tabelką.
Tutaj musiałbym np. w kontrolerze z kodu C# odwołać się do WEB Api, pobrać warzywa i wrzucić do widoku.
Potem jeśli sama tabelka ma być odświeżana ajaxem co 30 sekund to znowu muszę to pobierać ajaxem?
Wtedy w dwóch miejscach musiałbym pobierać dane:
w kontrolerze w C# aby zwrócić wypełniony widok przy pierwszym wejsciu na strone, a potem dodatkowo to samo robić jeszcze ajaxem w JS przy odświeżaniu.
Jak to się robi? :) Jakie jest sensowne rozwiązanie?

0

Możesz zainteresować się serwisem parse.com i mieć gdzieś większość z tych pytań - masz załatwione rejestrację, logowanie, utrzymywanie sesji, operacje na danych, mają nawet własne kontrolki list na mobilkach obsługujące stronicowanie czy pull to refresh. Jedyny minus to taki, że na tych danych ciężko wykonać jakieś operacje agregujące: nie wyznaczysz średniej, nie zsumujesz jakiejś kolumny, ba, nawet nie da się pobrać ilości rekordów bez pobierania wszystkich rekordów i liczeniu samemu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1