0
NodeJS + RestifyとPassportJSを使用してREST-APIを作成して認証したいと考えています。 ユーザーがログインすると、私はsessionIdを生成し、それを自分で作成したセッションに保存します。req.user is undefined
var Passport = require('passport');
var PassportBearerStrategy = require('passport-http-bearer').Strategy;
// Authentication
Passport.use(new PassportBearerStrategy(function(sessionId, cb) {
Auth.getSession(sessionId, function(userId){
cb((!!userId), { userId: userId }, userId);
});
}));
server.get(
'/user',
Passport.authenticate('bearer'),
function(req, res, next){
console.info(req.user ); // undefined
respond(res, {});
return next();
}
);
すべてが機能怒鳴るで、req.user
がundefined
であること、を除いて動作します。私はあなたがセッションを有効にする必要があることを読んだ。しかし、私はすでに自分のセッションを実装していますが、別のセッションは必要ありません。
私が必要とするのは、もし私がcb(true, user)
と言うなら、それは以下の関数に到着します。
これを解決する方法はありますか?
私はその戦略を使ったことが一度もなく、ローカル戦略だけです。ローカルでは、ユーザーをシリアライズおよびデシリアライズする機能が必要です。これは、後でreq.userを介してアクセスできるユーザーを提供するdesarialize関数です。この機能が欠けていませんか? – yBrodsky
@yBrodsky、そうです、これらの機能はありません。私は正確にここに記載されているようにそれらを追加:https://stackoverflow.com/questions/27637609/understanding-passport-serialize-deserialize しかし、req.userは未定義です。 – TSM