0

私も構築している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"); 
}); 

、私に知らせて。どんな助けもありがとう!

+1

_「あらゆる種類のCORS問題があることに気付きました」_あなたはそれが意味するものを明確にする必要があります。 CORSは、通常、拡張のための問題ではありません。また、 'chrome.identity'をチェックしてください。 – Xan

+0

@Xan CORSエラーを再現するために自分のコードを変更した後、私は新しいウィンドウでログインURLを開いた限り、もうそれらを取得していないことに気付きました。また、「chrome.identity」は役立ちますので、そのアドバイスをいただきありがとうございます。 –

答えて

0

新しいウィンドウで自分のfacebook_loginページを開いて、この作業を行うことができました。私は今のところサーバーサイドのFacebookログインに固執するように見えます。

+1

Wise:クライアント側のログインでAPIキーを抽出する方が簡単です。 – Xan

関連する問題