我正在创建一个Xamarin移动应用程序,该应用程序使用资源后端ASP核心Restful Web API和“身份服务器4”来发布JWT令牌。直到现在我都很好。
现在我想在我的应用中添加社交登录选项。因此,用户将能够使用他的Google或Facebook帐户登录,并且该应用程序会收到访问令牌。然后,应用程序必须将访问令牌发送到资源后端。然后,Resources后端检查Access令牌以进行验证,并返回用户请求的资源项列表。 我的问题是后端资源应该如何知道该令牌是从谷歌或Facebook发出的,以检查其基于secret和ClientId的验证?
Diagram of what I'm tying to do
如果从Google发出访问令牌{根据从Google获取的OAuth凭据检查访问令牌的有效性}
否则如果是从Facebook发出的{检查基于从Facebook获得的OAuth凭证的有效性}
否则如果是从身份服务器4发出的{根据从身份服务器4获得的OAuth凭证检查有效性}。
这是解决方案吗?
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
Authority = "http://localhost:1941",
RequireHttpsMetadata = false,
EnableCaching = true,
ScopeName = "api1",
ScopeSecret = "secret",
AutomaticAuthenticate = true
});
app.UseGoogleAuthentication(new GoogleOptions
{
ClientId = "[YOUR APP CLIENT ID]",
ClientSecret = "[YOUR APP SECRET]"
});
app.UseFacebookAuthentication(new FacebookOptions
{
ClientId = "[YOUR APP CLIENT ID]",
ClientSecret = "[YOUR APP SECRET]"
});