0
votes

I'm trying to use OAuth bearer authentication in a Web API application, everything works fine on my local IIS, I'm able to get the token as you can see here:

enter image description here

But when I publish my project to a ApiApp in Azure it doesn't work at all. I get the response:

{ "message": "No HTTP resource was found that matches the request URI 'https://mysite.azurewebsites.net/API/login'.", "messageDetail": "No type was found that matches the controller named 'login'." }

As shown in here:

enter image description here

My Startup.Auth class looks like:

public partial class Startup
{
    public static OAuthAuthorizationServerOptions OAuthOptions { get; private set; }

    public static string PublicClientId { get; private set; }

    // For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
    public void ConfigureAuth(IAppBuilder app)
    {
        app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

        app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());

        // Configure the application for OAuth based flow
        PublicClientId = "self";
        OAuthOptions = new OAuthAuthorizationServerOptions
        {
            TokenEndpointPath = new PathString("/login"),
            Provider = new ApplicationOAuthProvider(),
            AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
            AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
            // In production mode set AllowInsecureHttp = false
            //#if DEBUG
            AllowInsecureHttp = true
            //#endif
        };

        // Enable the application to use bearer tokens to authenticate users
        app.UseOAuthAuthorizationServer(OAuthOptions);
    }
}

I hope you can tell me what I'm doing wrong.

1

1 Answers

0
votes

I've just find out that I was using an incorrect url. I was using /api/login instead of just /login.