在Chrome扩展中实现facebook登录

Implementing facebook login in a Chrome extension

本文关键字:facebook 登录 实现 Chrome 扩展      更新时间:2023-09-26

我正在尝试使用Facebook的Javascript SDK在Chrome扩展的popup.html页面中实现登录按钮。

然而,当我调用FB.login()函数时,我会得到以下错误:Given URL is not allowed by the Application configuration。现在,由于它是一个Chrome扩展,我不确定我是否可以为它提供URL或域名

那么,在这种情况下我该怎么办呢?

您需要手动构建登录流,如下所述:

https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.2

我也在为chrome扩展构建一个登录按钮,并遵循了这些说明。然而,每当我尝试访问时,我都会得到这个:

"成功"安全警告。请像使用密码一样使用上面的url,不要与任何人共享。"

应该是正确的方式。。。但是不能让它工作。也许你可以。

我还试图在我的chrome扩展中添加fb登录功能。我在后台django应用程序中使用python socialaus作为facebook的身份验证应用程序。

我遵循的步骤如下:

首先,我打开了一个带有facebook登录链接的窗口:

window.open('https://www.facebook.com/dialog/oauth?client_id=&response_type=令牌&redirect_uri=,"Facebook登录","宽度=635,高度=290,左侧=0,顶部=0")

从成功url中,我检索到访问令牌并保存在chrome本地存储中。

然后我把令牌发送到我的django facebook登录视图。但它遇到了错误:

'Nonetype' object has no attribute 'encode'.

我的代码如下:

if isinstance(request.backend, BaseOAuth1):
        if request.REQUEST.get('backend') == "facebook":
            oauth_token_secret = settings.SOCIAL_AUTH_FACEBOOK_KEY
        if request.REQUEST.get('backend') == "google-oauth2":
            oauth_token_secret = settings.SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET
        token = {
            'oauth_token': request.REQUEST.get('access_token'),
            'oauth_token_secret': oauth_token_secret,
        }
    elif isinstance(request.backend, BaseOAuth2):
        token = request.REQUEST.get('access_token')
    else:
        raise HttpResponseBadRequest('Wrong backend type')
    user = request.backend.do_auth(token, ajax=True)
    # age = request.POST.get('age', '')
    login(request, user)

我遇到错误的地方是:user=request.backend.do_auth(token,ajax=True)