これはかなり疑問に思えるかもしれませんが、私は最近Node.jsに入って、Laravel Appで発生する認証と同じ種類の認証がNode.jsで行われるようにする必要があります。WebSocket接続の認証
明らかに、APIを使用する必要がありますが、安全な方法で行う方法については混乱しています。私はこの記事に見てきた:
https://www.ida.liu.se/~TDP024/labs/hmacarticle.pdf
とAPIの構築に彼らのアルゴリズムで見てきました。しかし、私はそれがどのように安全であるか理解していません。
投稿によると、公開鍵と秘密鍵をデータベースに格納します。公開鍵は誰でも見ることができますが、私有鍵はプライベート鍵です。ただし、サーバーに送信するときは、ハッシュされたバージョンをプライベートサーバーの他のデータとともにサーバーに送信します。
これはすべてうまくやっています。しかし、公開鍵とハッシュが公開されているわけではないため、秘密鍵も公開されていますか?例えば
は、私はちょうどそれとは関係のないユーザーのアクセス権を与えるには、このリンクを共有してから別のユーザーを停止して何次の接続
ws://example.com/pull?public=A89-3NJ2-KAN-NKSN1&hash=QmFzZTY0IHRoZSBoZWxsIG91dCBvZiBtZSBiYWJ5Li4uLi4u
を確立しようと言うことができますか?
問題は、別の人にリンクを渡すことによって、WebSocketを開く権限が与えられることです。それが私が防止しようとしていることです。 – Shawn31313
@ Shawn31313あなたが*他の誰かがそれらを偽装することを自発的に許可することは不可能であることを望みますか?これは簡単ではありません。自分の身元を誰かに証明する私の能力を自発的に贈りたいのであれば、私はいつも自分の電子メールパスワードや認証クッキーを渡すことができます。 – apsillers
@ Shawn31313また、誤ってリンクを譲ってしまわないようにしたいのですか?その場合は、クッキーを使用するか、ソケットチャネル内で資格情報を送信してその情報を伝達してください。 – apsillers