OAuth服务器令牌端点返回404

时间:2015-04-04 16:13:52

标签: c# oauth-2.0 asp.net-web-api2

我正在处理SPA和Web服务之间基于令牌的身份验证和授权。我在Taiseer Joudeh撰写的这个主题中找到了很棒的文章,基于this我开始构建我的基础架构。

资源和身份验证服务器是分开的。身份验证服务器有两个端点:

第一个正常工作,所以我可以注册新的受众。我有第二个问题。它总是回馈404.

public void ConfigureOAuth(IAppBuilder appBuilder)
        {
            OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
            {
                //only dev environment
                //TODO
                AllowInsecureHttp = true,
                TokenEndpointPath = new PathString("/services/oauth2/token"),
                AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(30),
                Provider = new CustomOAuthProvider(),
                AccessTokenFormat = new CustomJwtFormat("http://dev.dilib.local")
            };

            appBuilder.UseOAuthAuthorizationServer(OAuthServerOptions);
        }

正如你所看到的,它几乎与Taisser在他的文章中写的相同。

我到目前为止所做的工作是为了找出它为什么没有按预期运行的原因:

  • 我仔细检查了我编码的代码,没关系
  • 我搜索了一下,有几个人遇到了这个问题,但答案只表明他们可以解决它,没有人努力写下他/她所做的事
  • 我更改了TokenEndpointPath几次以避免它可能与我的机器上运行的其他服务冲突,但是,我的机器上没有任何其他服务
  • 我已经读过OAuth端点并不是一个服务端点,我看到了一个代码片段,但整篇文章都是关于CORS的,我不想混淆所有内容
  • 我检查了IIS日志,但事实上只有特定的POST和404
  • 我检查了事件查看器,没有
  • 我在这里检查了相关问题,但没有检查

所以,我没有想到,我认为我做了些蠢事,我想请求你的帮助!

1 个答案:

答案 0 :(得分:0)

您提到oauth2令牌端点URI如下所示,但您的代码段并未说明,因为代码似乎缺少您创建的“TokenEndpointPath”变量中的“authentication”字符串。我已粘贴下面更正的代码。我不确定你的问题是否那么简单:)

  

http://dev.dilib.local/services/验证 /的oauth2 /令牌

OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
            {
                //only dev environment
                //TODO
                AllowInsecureHttp = true,
                TokenEndpointPath = new PathString("/services/authentication/oauth2/token"),
                AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(30),
                Provider = new CustomOAuthProvider(),
                AccessTokenFormat = new CustomJwtFormat("http://dev.dilib.local")
            };