Проверка подлинности на основе токенов с помощью Angular и Web API - ошибка 404 - PullRequest
0 голосов
/ 24 апреля 2019

Я работаю с Angular и ASP.NET Web API.При попытке аутентификации на основе токена и отправки запроса на вход в систему появляется следующая ошибка: POST http://localhost:53339/token 404 (Not Found)

Я пробовал несколько решений.

класс запуска webapi:

public void Configuration(IAppBuilder app)
{
    HttpConfiguration config = new HttpConfiguration();
    ConfigureOAuth(app);
    WebApiConfig.Register(config);
    app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
    app.UseWebApi(config);
}

public void ConfigureOAuth(IAppBuilder app)
{
    // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
    app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); //For support cross region
    var testProvider = new Providers.MyAuthorizeProvider();
    OAuthAuthorizationServerOptions options = new OAuthAuthorizationServerOptions
    {
        AllowInsecureHttp = true,
        TokenEndpointPath = new PathString("/token"),
        AccessTokenExpireTimeSpan = TimeSpan.FromDays(14.0),
        AuthorizationCodeExpireTimeSpan = TimeSpan.FromDays(14.0),
        RefreshTokenProvider = new Providers.RefreshTokenProvider(),
        Provider = testProvider ,
    };
    app.UseOAuthAuthorizationServer(options);
    app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
}

Я хочу аутентификацию на основе токена с помощью Angular и Web API.


Когда я пытаюсь вызвать api его шоу, локальный хост 404 eror не найден

<rewrite> 
  <rules> 
    <rule name="RewriteRules" 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}" pattern="^/(api)" negate="true" /> 
      </conditions> 
      <action type="Rewrite" url="/index.html" /> 
    </rule> 
  </rules> 
</rewrite>

1 Ответ

0 голосов
/ 25 апреля 2019

Поскольку вы используете правила перезаписи URL, вам необходимо добавить исключение для вашей конечной точки токена (/token). Вот пример:

<rewrite>
    <rules>
        <rule name="RewriteRules" stopProcessing="true">
            <match url=".*" />
            <conditions logicalGrouping="MatchAll">
                <!-- EXISTING RULES -->
                <!-- Add this rule: -->
                <add input="{REQUEST_URI}" pattern="^/token" negate="true" />
            </conditions>
            <action type="Rewrite" url="/" />
        </rule>
    </rules>
</rewrite>
...