在后端 Web API 中使用 Google 和 Facebook 颁发的访问令牌

using access token issued from Google & facebook in backend web API

提问人:Sepidehye Fanavari 提问时间:7/18/2016 最后编辑:Sepidehye Fanavari 更新时间:7/18/2016 访问量:333

问:

我正在创建一个 Xamarin 移动应用程序,它使用资源后端 ASP 核心 Restful Web API 和“标识服务器 4”来颁发 JWT 令牌。直到现在我都还好。

现在,我想将社交登录选项添加到我的应用程序中。因此,用户将能够使用他的 Google 或 Facebook 帐户登录,并且应用程序会收到访问令牌。然后,应用必须将访问令牌发送到资源后端。然后,资源后端检查访问令牌进行验证,并返回用户请求的资源项列表。 我的问题是,后端资源应该如何知道令牌是从 google 或 Facebook 颁发的,以检查其基于 secret 和 ClientId 的验证?

我要做什么的图表

如果访问令牌是从 Google 颁发的 {根据从 google 获取的 OAuth 凭据检查访问令牌的有效性}

否则,如果是从 Facebook 颁发的 {根据从 Facebook 获取的 OAuth 凭据检查有效性}

Else If 是从 Identity Sever 4 发出的 {根据从 Identity Sever 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]"
            });
谷歌-OAuth Facebook-OAuth

评论

0赞 Alexandru Marculescu 7/18/2016
我假设您正在将令牌从移动应用程序发送到包装在对象中的 API?如果是这样,您可以向其添加另一个属性 (ProviderName - Facebook/Google),API 可以通过该属性相应地应用逻辑

答: 暂无答案