gpt4 book ai didi

angular - 如何将动态 Facebook 和谷歌客户 ID 放在 angularx-social-login 上?

转载 作者:行者123 更新时间:2023-12-04 12:44:35 28 4
gpt4 key购买 nike

我用过 angularx-social-login以 facebook 和 google 身份登录。但我的要求是:- 我已经通过 API 的响应获得了客户端 ID。使用这个包在 app.module.ts 上传递客户端 ID。像这样:-

import { SocialLoginModule, AuthServiceConfig } from "angularx-social-login";
import { GoogleLoginProvider, FacebookLoginProvider } from "angularx-social-login";

let config = new AuthServiceConfig([
{
id: GoogleLoginProvider.PROVIDER_ID,
provider: new GoogleLoginProvider("Google-OAuth-Client-Id")
},
{
id: FacebookLoginProvider.PROVIDER_ID,
provider: new FacebookLoginProvider('Facebook-App-Client-Id')
}
]);

export function provideConfig() {
return config;
}

@NgModule({
declarations: [
AppComponent
],
imports: [
SocialLoginModule
],
providers: [
{
provide: AuthServiceConfig,
useFactory: provideConfig
}
],
entryComponents: [],
bootstrap: []
})
export class AppModule { }

所以请告诉我如何传递客户端 ID 动态。使用 Api

最佳答案

以下是如何从服务器加载 clienId 的示例。


const socialConfigFactory = (restService: MyRestService) => {
return restService.getClientConfig().pipe(map(config => {
let providers = [];

if (config.clientId.length > 0) {
providers.push({
id: GoogleLoginProvider.PROVIDER_ID,
provider: new GoogleLoginProvider(
config.clientId
),
});
}

return {
autoLogin: false,
providers: providers,
} as SocialAuthServiceConfig;
})).toPromise();
};

@NgModule({
imports: [
BrowserAnimationsModule,
BrowserModule,
CoreModule,
SocialLoginModule,
AppRoutingModule
],

declarations: [
AppComponent
],
bootstrap: [AppComponent],
providers: [
{
provide: 'SocialAuthServiceConfig',
useFactory: socialConfigFactory,
deps: [MyRestService]
}
]
})
export class AppModule {
}
服务可能如下所示:

class ClientConfig {
clientId: string;
}

@Injectable({providedIn: 'root'})
export class MyRestService {

constructor(private http: HttpClient) {}
/*
* server returns { clientId: "client-id" }
*/
getClientConfig() {
return this.http.get<ClientConfig>(`${environment.apiUrl}/config/from-server`);
}
}

关于angular - 如何将动态 Facebook 和谷歌客户 ID 放在 angularx-social-login 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48395278/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com