如果您查看下面的代码段,Katana会将redirect_uri
/回调路径设置为所有提供商的某个奇怪值。
public FacebookAuthenticationOptions()
: base(Constants.DefaultAuthenticationType)
{
CallbackPath = new PathString("/signin-facebook");
...
}
public LinkedInAuthenticationOptions() : base("LinkedIn")
{
this.CallbackPath = new PathString("/signin-linkedin");
...
}
如何以及在何处将其重置为将处理回调的操作的正确uri?
答案 0 :(得分:1)
回调路径与您正在考虑的redirect_uri
不同。出于解释的目的,
redirect_uri
是oAuth请求的参数如果您查看ApplyResponseChallengeAsync()
类的xxxAuthenticationHandler
方法,您将看到properties.RedirectUri
设置为当前URI的位置,除非您在{{{ 1}}通知。在重定向到身份提供程序时,RedirectToIdentityProvider
设置为CallbackPath,redirect_uri
对象在状态参数中传递。
当身份提供程序重定向回您的应用程序(特别是CallbackPath)时,将调用properties
方法,然后调用Invoke
,然后检查当前URI是否为CallbackPath执行。然后,从属性对象中检索InvokeReplyPathAsync()
,构建RedirectUri
对象,然后将用户重定向到其最终目标ClaimsPrincipal
。