私も構築しているNode.js/Restifyウェブサービスとやりとりするクロムエクステンションを構築しています。 passport.jsを使用して、ユーザーがFacebookでヒットして認証を受けるためのAPIエンドポイントを作成しました。しかし、クローム拡張機能を実行したら、Facebook認証のエンドポイントをajax経由でリクエストしようとすると、さまざまなCORSの問題が発生していることがわかりました。Chrome拡張機能でFacebookで認証する最善の方法は何ですか?
オンラインで問題を調査した後、ほとんどの人がクライアント側のFacebook認証をすべて行うように見えます。今、私はクライアントサイドのFacebookの認証を使用する拡張機能を書き直し、Restify APIを使って他のもの(Facebook以外のもの)を保管しておくことを考えています。
私の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」は役立ちますので、そのアドバイスをいただきありがとうございます。 –