您好,貝爾/ hapi開發人員和/或專家......預先感謝您的任何建議......我正在嘗試爲oauth完成一個forcedotcom策略(salesforce) ,它幾乎可以工作,並且我找不到任何有關錯誤的文檔。使用OAUTH2和Salesforce的NodeJS HapiJS(force.com)
我得到一個錯誤「[錯誤:未能獲得定製的訪問令牌]」
我的應用程序正確地重定向到Salesforce,提示登錄在Salesforce的域,驗證,並妥善返回到回調URL,但是,回調URL路由/控制器失敗,因爲「isAuthenticated」爲false,但我可以在請求中看到,從salesforce返回到回調的URL包含「代碼」參數(auth訪問令牌和「狀態」值。 )
這裏是我的策略
// Register bell with the server
server.register(require('bell'), function(err) {
server.auth.strategy('forcedotcom', 'bell', {
provider: {
protocol: 'oauth2',
useParamsAuth: false,
auth: config.forcedotcom.authURL,
token: config.forcedotcom.tokenURL
},
isSecure: false,
clientId: config.forcedotcom.clientID,
clientSecret: config.forcedotcom.clientSecret,
password: config.sessionCookie.sessionSecret,
location: config.forcedotcom.callbackURL
});
});
這裏是回調路線(在callbackURL
的配置server.route({
method: ['GET', 'POST'],
path: '/auth/forcedotcom/callback',
config: {
auth: {
strategy: 'forcedotcom',
mode: 'try'
},
handler: function(request, reply) {
console.warn('request', request, 'reply', reply);
if (!request.auth.isAuthenticated) {
return reply('Authentication failed due to: ' + request.auth.error.message);
}
return reply.redirect('/');
}
}
});
指定的任何方向將是驚人的。謝謝!
在hapi的開發者的幫助下,我們看到第二個調用/令牌請求中有400個來自salesforce ...與hapi無關的另一個帖子通過uri解碼來自salesforce的oauth代碼(第一個響應)發送到令牌回調。我不知道如何用hapi來做到這一點,但我們正在接近。 [類似但不同的問題解決](http://salesforce.stackexchange.com/questions/43878/400-bad-request-in-response) – sol