javascript - Meteor Facebook 无法授权

标签 javascript html facebook meteor

我的问题是我无法配置服务器以正确使用 Facebook。 前段时间我有 {{>loginButtons}} ,在第一次登录或重置后,我必须将 apId 和 Secret 复制并粘贴到弹出窗口中,现在我尝试更多地自定义这些按钮,但我陷入了困境单击 FB 按钮(弹出窗口)后出现“无效的应用程序 ID:未定义”,我什至可以看到在 url 中我有未定义的 ID https://www.facebook.com/dialog/oauth?client_id=undefined&redirect_uri= http://localhost:3000/_oauth/facebook?close&display=popup&scope=email&state=1111111111111111

这是一个代码,也许你可以帮助我或者给我一些其他的方法来做到这一点。 基本上我想摆脱普通用户的注册表并保留 Facebook、Twitter 等的登录字段。

我的 HTML:

<div id="login-buttons">
    <div class="login-text-and-button">
      <div class="login-button single-login-button" id="login-buttons-facebook">
        <div class="login-image" id="login-buttons-image-facebook"></div>
        <span id="sign-in-facebook" class="text-besides-image sign-in-text-facebook">Sign in with Facebook</span>
      </div>
      <br>
    </div>
</div>

和我的 JS 方法:

"click #sign-in-facebook": function(e, tmp) {
        Meteor.call('facebookLogin', function (error, result) {});
        if (Accounts.loginServicesConfigured()) {
            Meteor.loginWithFacebook({
                requestPermissions: ['email']
            }, function(err) {
                if (err) {
                    console.log("error when login with facebook " + err);
                } else {
                    console.log("login with facebook succeeded");
                }
            });
        };
    }

//这是在服务器端

facebookLogin:function(){
    ServiceConfiguration.configurations.remove({
        service: "facebook"
    });
    ServiceConfiguration.configurations.insert({
            service: "facebook",
            appID: "1111111111",
            secret: "1111111111"
        });
}

如您所见,所有数据都在数据库中

meteor:PRIMARY> db.meteor_accounts_loginServiceConfiguration.find()
    { "service" : "facebook", "appID" : "1111111111", "secret" : "211111111", "_id" : "111111" }

最佳答案

这看起来有点不规则。您只需输入一次 Facebook 配置。

Meteor.startup(function() {

    ServiceConfiguration.configurations.remove({
        service: "facebook"
    });

    ServiceConfiguration.configurations.insert({
        service: "facebook",
        appID: "1111111111",
        secret: "1111111111"
    });

});

您的登录点击处理程序:

"click #sign-in-facebook": function(e, tmp) {
    Meteor.loginWithFacebook({
            requestPermissions: ['email']
    }, function(err) {
        if (err) {
            console.log("error when login with facebook " + err);
        } else {
            console.log("login with facebook succeeded");
        }
    });
}

关于javascript - Meteor Facebook 无法授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25454538/

相关文章:

javascript - 数组先前的值在 angularjs 中被覆盖

javascript - React Hooks - 无法获取更新的状态值

javascript - 将十进制转换为十六进制不适用于 8020224

javascript - 如何禁用滚动文档正文?

html - 将产品图片放在盒子底部

JavaScript 标签、性能和 W3C

android - facebook sdk 4.1 for android : how to handle token expiration

php - 未捕获的 OAuthException : An unknown error has occurred with Facebook PHP API

javascript - 我如何在 Meteor 中访问用户的 Facebook 好友列表?

javascript - createStore with combineReducers 和 applyMiddleware 没有第二个参数