在Angular2-Meteor应用中添加Facebook登录



我正在尝试将Facebook身份验证添加到Angular2-Meteor应用程序中,该应用程序从教程开始作为社交应用程序,并逐渐被修改为不那么通用的东西。然而,似乎没有太多关于这个特殊用例的文章。

注意:我已经问过流星论坛和Gitter没有成功了。

以下是我所采取的步骤:

使用

添加了Service Configuration包

meteor add service-configuration

在server/services上创建了一个文件。包含(我的实际密钥):

ServiceConfiguration.configurations.upsert({
    "service": "facebook" 
}, {
    $set: {
        "settings": {
            "appId": “appid”,
            “secret": "secret",
            "loginStyle": "popup"
        }
    }
});

但是在编译时,我得到一个错误说

cannot find name 'ServiceConfiguration'

这让我认为包没有正确安装,但卸载/重新安装它并没有解决这个问题,它显示在我的。meteor目录。

客户端我在一个导入了Meteor的组件中的按钮上使用click事件调用这个方法:

facebook() {
    Meteor.loginWithFacebook((err) => {
      if (err) {
        //Handle error
      } else {
        //Handle sign in (I reroute)
        this.router.navigate(['/home']);
      }
    })

抛出控制台错误

meteor_1.Meteor.loginWithFacebook is not a function

但是我怀疑这是次要的,因为ServicesConfiguration没有注册。

项目的Git repo在这里:https://github.com/nanomoffet/ng2-starter,引用的文件是server/services。Ts和client/app.ts

目前还不能在TypeScript中使用ServiceConfiguration。在我的应用程序中,我创建了一个Javascript文件,我确实在其中调用了ServiceConfiguration。

  1. meteor add service-configuration

  2. 创建文件。/server/service-config.js

    Meteor.startup(() => {
        ServiceConfiguration.configurations.remove({
            service: "facebook"
        });
        ServiceConfiguration.configurations.insert({
            service: "facebook",
            appId: '<APP_ID_YOU_GET_FROM FROM_FACEBOOK>',
            loginStyle: "popup",
            secret: '<SECRET_YOU_GET_FROM_FACEBOOK>'
        });
    });
    

我只在Google上测试过,效果很好。

最新更新