2017-08-14 48 views
0

我有一个具有节点后端的Angular 4应用程序。我正在使用像facebook和linkedin这样的社交登录,它需要angular2-social-logins npm软件包。要使用这个包,我必须在我的应用程序模块中使用我的客户端ID。如何保持这些变量的秘密性,并且在推送到GitHub时不推送代码?使用具有角度4+和nodejs的秘密环境变量

这里是我的app.module

let providers = { 
    "google": { 
    "clientId": environment.providers.google.clientId 
    }, 
    "linkedin": { 
    "clientId": environment.providers.linkedin.clientId 
    }, 
    "facebook": { 
    "clientId": environment.providers.facebook.clientId, 
    "apiVersion": environment.providers.facebook.apiVersion 
    } 
}; 



@NgModule({ 
    declarations: [ 
    AppComponent, 
    LandingPageComponent, 
    NavComponent, 
    FooterComponent 
    ], 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    HttpClientModule, 
    FacebookModule.forRoot(), 
    AppRoutingModule, 
    Angular2SocialLoginModule 

    ], 
    providers: [ 
    UserService, 
    UiService, 


    ], 
    bootstrap: [AppComponent] 
}) 
export class AppModule {} 

Angular2SocialLoginModule.loadProvidersScripts(providers); 

的的clientId当前存储在环境/ environment.ts。

我不希望这些看到,当我推到github。

+1

我不认为你可以做到这一点。您需要支付私人存储库才能将其隐藏起来,否则它将成为“开放源代码” – echonax

回答

0

你总是可以将你的环境文件添加到一个.gitignore文件,所以它们不会被推到git。 https://help.github.com/articles/ignoring-files/

+0

但是,如何访问生产中的这些变量。我使用heroku进行部署。 –

+0

是的,如果你不把env文件存储在回购中。您需要一些方法来生成/推送env文件到服务器。我不熟悉heroku,所以我不确定最佳路线是什么。 – LLai