4

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

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

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

我想做的,在另一堂课上,叫这个:

await [FacebookAuthenticationProvider instance].Authenticated(context);

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

4

1 回答 1

2

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

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

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

同样,我没有这样做,但我假设对 Facebook 进行实际身份验证的调用将由某种链接触发,并且您会在 Facebook 注册一个外部登录回调 URL,该 URL 将触发您的控制器操作之一(此时会执行身份验证逻辑),但我猜用户服务实现会为您处理大部分工作,您只需加入它即可。

如果您正在寻找缓存令牌,也许看看 -

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

于 2015-03-11T02:43:59.763 回答