Czy możliwe jest zabezpieczenie token_authenticatable?

Buduję prosty api zAPI Railsówi chcę się upewnić, że jestem na dobrej drodze. Używam devise do obsługi logowania i zdecydowałem się na Devise'stoken_authenticatable opcja, która generuje klucz API, który należy wysłać przy każdym żądaniu.

Łączę API z interfejsem szkieletowym / marionetkowym i ogólnie zastanawiam się, jak powinienem radzić sobie z sesjami. Moją pierwszą myślą było po prostu przechowywanie klucza API w lokalnej pamięci lub pliku cookie, i pobieranie go na stronie, ale coś o przechowywaniu klucza api, które przeszkadzało mi z punktu widzenia bezpieczeństwa. Czy nie byłoby łatwo złapać klucz api, szukając w lokalnym magazynie / pliku cookie lub sniffując jakiekolwiek przechodzące przez nie żądanie i użyć go do podszywania się pod tego użytkownika w nieskończoność? Obecnie resetuję klucz API przy każdym logowaniu, ale nawet to wydaje się częste - za każdym razem, gdy logujesz się na dowolnym urządzeniu, oznacza to, że będziesz wylogowywany na co drugim, co jest rodzajem bólu. Gdybym mógł zrezygnować z tego resetowania, czuję, że poprawiłoby się to z punktu widzenia użyteczności.

Mogę się tu całkowicie mylić (i mam nadzieję, że jestem), czy ktoś może wyjaśnić, czy uwierzytelnienie w ten sposób jest niezawodnie bezpieczne, a jeśli nie, to jaka byłaby dobra alternatywa? Ogólnie rzecz biorąc, szukam sposobu, aby bezpiecznie zabezpieczyć użytkowników przed zalogowaniem się do interfejsu API bez częstego wymuszania ponownego uwierzytelniania.

questionAnswers(3)

yourAnswerToTheQuestion