ローカル戦略を使用したpassport.jsで問題が発生しています。私には2つの特定の問題があります:
- 最も基本的なケースのサンプルコード(以下を参照)で動作する永続的なセッションを取得していません。
- セッションレスになりたいです。最も基本的なケースでは、ログイン時に、セッショントークンを提供するユーザー名とパスワードを渡します。通常のリクエストでは、他のものとハッシュ化されたこのセッショントークンを使用して認証します。これはパスポートで簡単にできますか?この場合、パスポートはあまり提供されていないようで、独自のソリューションを作成する方が簡単です。標準のチェックを使用してログイン/ログアウトし、リクエストトークンをハッシュ解除してリクエストを検証するミドルウェアを使用するだけです。簡単安っぽい?
問題1:
ライブラリの参照コードを使用する:
https://github.com/jaredhanson/passport-local/blob/master/examples/login/app.js
一連のコマンドを実行して、ログアウトとログインを表示します。
A.ログインしていない/accountを確認してください
curl -v localhost:3000/account
予想通り、/loginにリダイレクトされます
<p>Moved Temporarily. Redirecting to <a href="http://localhost:9292/login">http://localhost:3000/login</a></p>
B.ログイン
curl -v -d "username=bob&password=secret" http://127.0.0.1:3000/login
また、予想どおり、/へのリダイレクトを取得します
<p>Moved Temporarily. Redirecting to <a href="http://127.0.0.1:3000/">http://127.0.0.1:3000/</a></p>
C. / accountを確認し、ログインします
curl -v localhost:3000/account
なんてこったい???
<p>Moved Temporarily. Redirecting to <a href="http://localhost:9292/login">http://localhost:3000/login</a></p>