こんにちは、私は Koa と Koa のパスポートをいじっていて、LocalStrategy で Koa のパスポートとバリアントを操作しているときに問題が発生しています。最初に、認証メソッドに req を渡すオプションを LocalStrategy に追加しようとしました (関数は _.verify 変数に格納されます)。LocalStrategyのコードのスニペット:
if (self._passReqToCallback) {
this._verify(req, username, password, verified);
} else {
this._verify(username, password, verified);
}
ダメ - アプリがハングするだけです (そのメソッドをオプションで指定しないと発生しません)。それで、私は自分の戦略をいじって、どこがおかしいのかを確認することにしました. 最終的に、認証関数が含まれている認証関数を返し、自己呼び出し試行関数がある パスポート/ミドルウェア/authenticate.jsを調べ始めました。
ここ(少なくともここ)が問題のようです。req 変数にアクセスしようとすると、「Internal error: illegal access」というメッセージが表示されます。ただし、同じシグネチャから res および next パラメータにアクセスすると、適切な値 (「オブジェクト」および「関数」) が返されます。
私はここで少し迷っています。これを回避することはできますが、むしろしたくありません。
更新 1
koa-passport/lib/framework/koa.js には、プロキシ経由で koa コンテキストから「モック」された req オブジェクトがあり、これが「不正アクセス」メッセージの原因である可能性があります。req.path へのアクセスは、この時点/ファイルで正常に機能します...