2012-10-11 10 views
6

Więcej ogólnych pytań na temat niektórych propozycji wdrożenia systemu uwierzytelniania opartego na tokenach, uzasadnionego faktem, że Node.js nie ma gotowego produktu .Uwierzytelnianie oparte na tokenach (w Node.js)

Ponieważ chcemy zbudować serwer API bez stanu do manipulowania naszym magazynem danych, chcemy zapewnić naszym użytkownikom token uwierzytelniania ("bilet do jazdy"), który będzie zawarty w każdym wywołaniu API.

Pytanie, w jaki sposób wygenerować token w bezpieczny sposób.

[idea 1] - użytkownik żąda tokenu uwierzytelniania poprzez wysłanie (identyfikator użytkownika, hasło-hash) do serwera - serwer odpowiada (user_id, EXPIRY_DATE), podpisaną przez serwery API losowy klucz - serwer można sprawdzić ważność tokena na każde żądanie - serwer musiałby przechowywać żetony na ograniczony okres czasu

[idea 2] - jw, ale unikać wysyłania hash hasła - Użytkownik żąda uwierzytelniania żeton - Serwer wysyła użytkownikowi wyzwanie, użytkownik następnie przydziela wyzwanie za pomocą swojej pary (user_id, password_hash) - Serwer potwierdza to, a następnie generuje znacznik zgodnie z ideą 1.

[idea 3] - Użyj sam hash hasła auth jako dowód, wysłany na każde żądanie, aby uniknąć problemu tokena - uproszczenie zarządzania ale wtedy nie czaso- ograniczoność

[idea 4] - podobnie jak 2, ale challenged_hashed_by_ (user_id, password_hash) staje token i wysyłane w każdym żądaniu

Dzięki za wszelkie wskazówki

+0

Spójrz na to: http://stackoverflow.com/questions/11187342/mongoose-express-authorisation-on-http-verbs – freakish

Odpowiedz

0

Można użyć OAuth 2.0 z paszportem. Sam Paszport ma dobry przykład, jak go używać i jest to właściwe rozwiązanie do zabezpieczania bezpaństwowych interfejsów API bez wysyłania hasła użytkownika na każde żądanie.

Powiązane problemy