Mam aplikację kolby, która służy jako backend API REST. Chciałbym zaimplementować uwierzytelnianie oparte na tokenach dla zaplecza, ale aby to zrobić, muszę pobrać token użytkownika. Dokumentacja Flask-Security wyraźnie mówi, że aby pobrać token, należy wykonać test POST HTTP z danymi uwierzytelniającymi jako danymi JSON do punktu końcowego uwierzytelniania. Niestety nie rozumiem, jak odzyskać token CSRF potrzebny do wykonania takiego żądania.Flask-Security CSRF token
Jeśli użyję strony logowania/szablonu dostarczonego z rozszerzeniem, token CSRF zostanie przekazany klientowi w ukrytym polu w formularzu. Pytanie brzmi:
Jak pobrać token CSRF bez uzyskiwania dostępu i analizowania strony logowania, na przykład z aplikacji angularowej JS przy użyciu metod $ http lub aplikacji mobilnej?
Oczywiście mogłem uniknąć używania Flask-Security i samemu wdrożyć te elementy, ale jestem stosunkowo niedoświadczony przez webappy i czuję, że mogę podejść do tego w niewłaściwy sposób.
Jak to zrobiłeś w końcu? – kyrre
Skończyłem sam wdrażając warstwę bezpieczeństwa. Przepraszam, nie mam dla ciebie lepszej odpowiedzi. – Jacopo
Należy pamiętać, że nie ma bezpiecznego sposobu przechowywania tokenów w angularjs, patrz np. [tutaj] (https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage/). Bezpieczną opcją jest umożliwienie serwerowi przechowywania tokena w pliku cookie opartym tylko na protokole http + włączanie ochrony CSRF. Jeśli wszystko, co musisz porozmawiać, to angularjs, możesz równie dobrze skorzystać z sesji (+ anty-CSRF). – Adversus