我正在查看Microsoft.OWIN.Security.Google
的源代码,对于有多少类可以做这么简单的事情(重定向,获取cookie,检查它),我感到有点困惑和不知所措。 / p>
任何人都可以解释各种组件如何组合在一起
...以便我可以编写自定义提供程序
答案 0 :(得分:1)
经过一些谷歌搜索并在调试器中尝试不同的想法后,我最终得到了#34; copy-paste-edit" :)
这是一个简短的课程简历
扩展程序 - 没有什么特别的,帮助者:
// instead of using
app.Use(typeof(CustomAuthenticationMiddleware), app, options);
// you can use
app.UseCustomAuthentication(options);
Middlware - 方法用于将身份验证附加到owin管道
AuthenticationProvider - 据我所知,这可以在外面覆盖,以便能够在不重写整个事物的情况下更改某些逻辑。有2种方法:
Authenticated
- 在处理程序完成AuthenticationHandler.AuthenticateCoreAsync()
ReturnEndpoint
之前调用的{p> AuthenticationHandler.InvokeAsync
,就在外部认证之前。
但是当我尝试定制现有的提供商(google,facebook,...)
时,它似乎绝对无用处理程序 - 这是所有OAUTH2功能。
ApplyResponseChallengeAsync()
- 生成AuthorizationEndpoint URL并将useragent重定向到授权服务器
InvokeAsync()
- 处理获取RedirectEndpoint(/ signin-google或在授权服务器上设置的任何内容)并将用户返回到起始控制器(或回调)。它正在进行重定向,并设置了所有需要的cookie
AuthenticateCoreAsync() - 对授权服务器进行所有服务器端调用。
之前创建创建适当Cookie所需的所有Identity.Claims