ASP.Net MVC + Facebook oAuth + 重写规则原因 response_type=code

ASP.Net MVC + Facebook oAuth + rewrite rule cause response_type=code

当我在我的 ASP.Net 应用程序中创建一些重写规则时,我正在试验一个问题。

当我激活这条规则时:

<rewrite>
  <rules>
    <rule name="Main Rule" stopProcessing="true">
      <match url="^.*" />
      <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <add input="{REQUEST_URI}" matchType="Pattern" pattern="^/api/" negate="true" />
        <add input="{REQUEST_URI}" matchType="Pattern" pattern="^/token" negate="true" />
      </conditions>
      <action type="Rewrite" url="/" />
    </rule>
  </rules>
</rewrite>

我的应用程序将尝试使用响应类型通过 Facebook 进行身份验证:代码而不是令牌。

当我禁用它时,我很好地重定向 response_type = token

有没有人必须处理它? 谢谢。

我找到了解决方案。 问题是我的规则是捕捉 facebook 的响应。 owin 上下文试图捕获代码,然后要求 facebook 检索令牌。 Bu 因为我的规则是像以前一样完成的,是我的应用程序捕获了 facebook 代码...

为了不这样处理登录请求,我不得不更改规则:

<rewrite>
  <rules>
    <rule name="Main Rule" stopProcessing="true">
      <match url=".*" />
      <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <add input="{REQUEST_URI}" matchType="Pattern" pattern="^/api/" negate="true" />
        <add input="{REQUEST_URI}" matchType="Pattern" pattern="^/signin" negate="true" />
      </conditions>
      <action type="Rewrite" url="/" />
    </rule>
  </rules>
</rewrite>

希望这会有所帮助。 此致,