2011-08-08 15 views
8

Aplikacja, z której korzystam, używa wielu wywołań ajaxowych. Niestety natknąłem się na przeszkodę podczas badania, jak ograniczyć dostęp do interfejsu API. Na przykład:Zabezpieczanie RESTapi w kolbie

  • mam tabelę, która robi wywołanie ajax do http://site/api/tasks/bob
    muszę się upewnić, że tylko bob, zalogowany, można przeczytać, że stół (w przeciwnym razie ktoś, kto zna wzór może zażądać, aby zobaczyć Boba zadań po prostu wprowadzając adres URL w przeglądarce).
  • na innej stronie, ta sama tabela musi być w stanie zadzwonić http://site/api/tasks/all i pokazać zadania wszystkich użytkowników (tylko administrator powinien być w stanie to zrobić)

Dziękuję za twój czas czytania tego i może odpowiadając na to.

Odpowiedz

14

Widok tysięcy stóp jest potrzebne do uwierzytelnienia użytkownika ani z:

A) HTTP-auth (albo basic lub digest) na każde żądanie.

B) Sesje po stronie serwera. (Użytkownik uwierzytelnia i otrzymuje klucz sesyjny - jego dane użytkownika są przechowywane w zapleczu sesji na serwerze, dołączonym do tego klucza. Po zakończeniu sesji mogą wysyłać do ciebie żądania przekazania klucza sesji (w adresie URL lub w cookies) oraz informacje, które mają dostęp do zawraca się do nich)

Kolba ma parę przydatnych extensions które dotyczą dużej części tego typu rzeczy. - sprawdź Flask-Login i Flask-Principal zobaczyć przykłady jak zezwolenia można dodać do aplikacji Flask.

+0

Chciałbym znaleźć więcej informacji na temat wdrażania drugiego. – pocorschi

+0

@InnocentPixel - Flask ma już w pełni udokumentowane API sesji już wbudowane. Zobacz: http://flask.pocoo.org/docs/api/#sessions –