我有一個明確的服務器的路由上passport-amazon
策略(我已經剝離出來,從回調爲簡潔的用戶處理代碼):回調不被要求護照亞馬遜
護照在服務器正是如此初始化。 JS:
//configure passport
app.use(passport.initialize());
app.use(passport.session());
require('./config/passport')(passport);
護照策略被添加在require('./config/passport')(passport)
:
passport.use(
new AmazonStrategy({
clientID: process.env.AMAZON_CLIENT_ID,
clientSecret: process.env.AMAZON_CLIENT_SECRET,
callbackURL: process.env.AMAZON_CALLBACK_URL
},
(accessToken, refreshToken, profile, done) => {
console.log('in the callback for amazon auth');
//user handling code here
return done(null, user);
);
路線:
routes.get(
'/login',
passport.authenticate(
'amazon',
{
scope: ['profile']
}
),
(req, res) => {
console.log('something happens here');
}
)
認證使得亞馬遜和使用回調URL。我有回調URL路徑上的中間件:
function isLoggedIn(req, res, next) {
if (req.isAuthenticated())
return next();
res.redirect('/');
}
被調用和req.isAuthenticated()
是false
。護照回叫功能從不記錄到控制檯。
您在亞馬遜護照中間件中使用'done'還沒有返回用戶 –
我在示例中刪除了該部分代碼的整潔。問題在於函數從來沒有被調用過。該日誌語句從未執行。 – Lunchbox
我唯一想到的是,你沒有初始化護照 –