我正在实现 Thinktecture IdentityServer,并且正在添加移动应用程序的能力,以向服务器提供本地获取的 Facebook 访问 token ,服务器将通过本地身份验证用户进行响应。

IdentityServer 使用 Microsoft 的 Owin 中间件进行 Facebook 身份验证。这是它被添加到应用程序的方式:

var fb = new FacebookAuthenticationOptions
{
    AuthenticationType = "Facebook",
    SignInAsAuthenticationType = signInAsType,
    AppId = "...",
    AppSecret = "..."
};

在另一个类上,我想做的是:
await [FacebookAuthenticationProvider instance].Authenticated(context);

但我不知道如何 获得我需要的 FacebookAuthenticationProvider 实例。或者这甚至是必要的?我可以只 new 一个吗?

最佳答案

我没有专门做过这件事,但如果我理解你的问题,我会在下面实现他们的用户服务

https://identityserver.github.io/Documentation/docs/advanced/userService.html

之后我会假设它以与普通 ASP.NET 相同的方式进行身份验证,您可以检查 Request.IsAuthenticated 或 User.Identity 属性以提取信息。

同样,我还没有这样做,但我认为对 Facebook 进行实际身份验证的调用将由某种链接触发,并且您已经向 Facebook 注册了一个外部登录回调 URL,该 URL 会命中您的 Controller 操作之一(此时执行身份验证逻辑),但我猜用户服务实现会为您处理大部分工作,而您只需连接它即可。

如果您正在寻找缓存 token ,请查看 -

http://brockallen.com/2013/02/21/server-side-session-token-caching-in-wif-and-thinktecture-identitymodel/

关于asp.net-mvc - 在 IdentityServer 中获取 FacebookAuthenticationProvider 实例(Owin 应用程序),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28823177/

10-10 13:10