我正在尝试将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。
-
meteor add service-configuration
-
创建文件。/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上测试过,效果很好。