我正在構建一個Chrome擴展,它將與我正在構建的Node.js/Restify Web服務進行交互。我使用passport.js爲用戶創建了一對API端點,並通過Facebook進行身份驗證。但是,一旦我運行了Chrome擴展件,我意識到在嘗試通過ajax請求我的Facebook auth端點時存在各種CORS問題。在Chrome擴展中使用Facebook進行身份驗證的最佳方式是什麼?
在網上查看問題後,它看起來像大多數人在客戶端進行Facebook身份驗證。現在我想,也許我會重寫擴展以使用客戶端Facebook身份驗證,並讓所有其他(非Facebook)通過我的Restify API。
我的Facebook的身份驗證的端點是這樣的:
server.get('/facebook_login/callback', auth.authenticate({
failureRedirect: '/error',
scope: [
auth.fbPermissions.email,
auth.fbPermissions.publicProfile
]
}), function(req, res, next) {
res.redirect('/', next);
});
server.get('/facebook_login', auth.authenticate({
failureRedirect: '/error',
scope: [
auth.fbPermissions.email,
auth.fbPermissions.publicProfile
]
}));
而且在擴展中唯一的JavaScript代碼是這樣的:
document.addEventListener('DOMContentLoaded', function() {
window.open("http://localhost:8080/facebook_login");
});
如果有人已經得到了上述兩種方法的工作,讓我知道。任何幫助表示讚賞!
_「我意識到存在各種CORS問題」_你需要澄清你的意思。 CORS通常不是擴展的問題。另外,請查看'chrome.identity'。 – Xan
@Xan在更改我的代碼以重現CORS錯誤之後,我意識到只要我在新窗口中打開登錄URL,我就不會再使用它們了。此外,'chrome.identity'看起來很有用,所以感謝你的建議。 –