asp.net-mvc – 在IdentityServer中获取FacebookAuthenticationProvider实例(Owin应用程序)

我正处于Thinktecture IdentityServer的实施过程中,并且正在为移动应用添加容量,以便向服务器提供本机获取的Facebook访问令牌,这将通过本地验证用户进行响应.

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

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

我想要做的,在另一个班级,是这样称呼:

await [FacebookAuthenticationProvider instance].Authenticated(context);

但我无法弄清楚如何获得我需要的FacebookAuthenticationProvider实例.或者甚至是必要的?我可以新上一个吗?

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

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

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

同样,我还没有这样做,但我会假设Facebook实际验证的调用将由某种链接触发,并且您将在Facebook注册一个外部登录回调URL,这将触发您的某个控制器操作(在这一点上执行了身份验证逻辑),但我猜测用户服务实现会为您完成大部分工作,您只需将其挂钩即可.

如果您正在寻找缓存令牌,请查看 –

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

点赞