6

トークンベースの認証システムを実装するためのいくつかの提案について、一般的な欠陥を指摘する質問のほうが多く、Node.js には何か準備ができていないように見えるという事実に動機付けられています。

データストアを操作するためのステートレス API サーバーを構築したいので、API への各呼び出しに含まれる認証トークン (「乗車券」) をユーザーに提供したいと考えています。

問題は、このトークンを安全な方法で生成する方法です。

[アイデア 1] - ユーザーは (user-id,password-hash) をサーバーに送信して認証トークンを要求します - サーバーは API サーバーによって署名された (user_id,expiry_date) で応答します ランダム キー - サーバーは毎回トークンの有効性を確認できますrequest - サーバーは限られた期間トークンを保存する必要があります

[アイデア 2] - 上記と同じですが、パスワード ハッシュの送信を回避します - ユーザーは認証トークンを要求します - サーバーはユーザーにチャレンジを送信し、ユーザーは自分の (user_id,password_hash) ペアでチャレンジをハッシュします - サーバーはこれを検証し、トークンを生成します考え方1の通り。

[アイデア 3] - パスワード ハッシュ自体を認証トークンとして使用し、すべてのリクエストで送信して、トークン管理の問題を回避します - シンプルですが、時間制限はありません

[アイデア 4] - 2 と同じですが、 challenged_hashed_by_(user_id,password_hash) がトークンになり、すべてのリクエストで送信されます

ご指摘ありがとうございます

4

2 に答える 2

0

oauth 2.0 を見ましたか : http://hueniverse.com/2010/05/introducing-oauth-2-0/

あなたのためにそれを扱うことができるライブラリもかなりたくさんあります

于 2013-01-11T12:19:20.050 に答える
0

Passport で OAuth 2.0 を使用できます。Passport 自体には、その使用方法の良い例があり、リクエストごとにユーザー パスワードを送信せずにステートレス API を保護するための適切なソリューションです。

于 2014-11-04T14:11:14.017 に答える