1
我做了一個聊天機器人,我想授權用戶使用OIDCStrategy使用Azure廣告b2c。在控制檯中,它總是記錄authentication failed due to: In collectInfoFromReq: policy is missing
。該政策已在Azure中制定。而且我找不到在代碼中聲明策略的地方。這裏是我的服務器:微軟廣告b2c問題:政策缺失
server.get('/login',
passport.authenticate('azuread-openidconnect',
{
failureRedirect:'/fail'
}),
function(req,res,next){
console.log('Login was called');
res.redirect('/',next);
}
)
server.post('/api/auth', passport.authenticate('azuread-openidconnect'));
和連接到蔚藍的廣告B2C:
passport.use(new OIDCStrategy({
redirectUrl:'http://localhost:3978/api/auth',
allowHttpForRedirectUrl:true,
clientID:'5fe844d7-e4d1-4c4c-ba70-078297b00abc',
clientSecret:'?aTvTEbwcNfUF2,^',
identityMetadata: 'https://login.microsoftonline.com/nuffieldbot.onmicrosoft.com/v2.0/.well-known/openid-configuration',
skipUserProfile: true,
responseType: 'code',
responseMode: 'form_post',
isB2C:true,
scope:['email','profile','offline_access','https://outlook.office.com/mail/read'],
loggingLevel:'info',
tenantName:'nuffieldbot.onmicrosoft.com',
passReqToCallback:true
},function(req, iss, sub, profile, accessToken, refreshToken, done){
log.info('Example:Email address we received was:', profile.email);
process.nextTick(function(){
findByEmail(profile.email,function(err,user){
if (err) {
return done(err);
}
if (!user){
users.push(profile);
return done(null, profile);
}
return done(null, user);
})
})
}
));
我在哪裏可以宣佈在我的代碼這一政策?
感謝:
您也可以參考的代碼示例。其實我以前讀過這個樣本。在我的機器人對話框中,我有一個鏈接到「/ login?p = B2C_1_signin」的按鈕。在此之前,我無法撥打登錄頁面。現在的情況是,我可以撥打登錄頁面並使用我創建的帳戶,但由於該錯誤,護照仍會返回未經授權的狀態。所以我想知道是否有其他地方可以申報政策。 –
@ ZhenningLou,在查詢字符串中添加策略後得到同樣的錯誤? –
是的,我創建了一個const鏈接='http:// localhost:3978/login?p = B2C_1_signin',我仍然有錯誤。 –