2016-07-05 37 views
1

我正在嘗試將Facebook身份驗證添加到Angular2-Meteor應用程序中,該應用程序從本教程的Socially應用程序開始,並且正在慢慢地被修改爲不太通用的東西。但是,在這個特殊用例中似乎沒有多少內容。將Facebook登錄添加到Angular2-Meteor應用程序

注:我已經在流星論壇和Gitter中問過,但沒有成功。

下面是我所採取的步驟:使用

meteor add service-configuration

在創建包含服務器/ services.ts一個文件(我的實際鍵)

增值服務配置包:

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

但在編譯時,我收到一個錯誤,說

cannot find name 'ServiceConfiguration'

這讓我覺得這個軟件包沒有正確安裝,但卸載/重新安裝它並沒有解決問題,它顯示在我的.meteor目錄中。

我調用此方法與部件上點擊一個按鈕事件確實有流星進口

客戶端:

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回購是在這裏:https://github.com/nanomoffet/ng2-starter與引用的文件是服務器/ services.ts和客戶端/ app.ts

+0

我也對此感興趣。還有如何使用Twitter,Google登錄。所有這些oauth身份驗證在Meteor with Blaze中都很有魅力。但是它沒有爲我收集的Angular2實現。 – davedonohue

回答

1

目前,它無法使用ServiceConfiguration的打字稿。我在應用程序中做的是我創建了一個Javascript文件,我在其中進行了ServiceConfiguration調用。

  1. 流星添加服務配置

  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>' 
        }); 
    }); 
    

我只與谷歌進行了測試,併爲我工作得很好。

+0

你是如何將service-config.js導入main.ts的? –

相關問題