2015-04-04 53 views
2

我正在處理我的SPA和Web服務之間基於令牌的身份驗證和授權。我在Taiseer Joudeh這篇文章中發現了很棒的文章,並基於this我開始構建我的基礎架構。OAuth服務器令牌端點返回404

資源和認證服務器是分開的。認證服務器有兩個端點:

第一個正常工作,這樣我就可以註冊新的觀衆。我有第二個問題。它總是回饋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在他的文章中所寫的一樣。

我已經爲了迄今所做的發現,爲什麼,因爲它預計它不工作:

  • 我雙重檢查我編寫的代碼,它是確定
  • 我GOOGLE了四周,有是幾個人遇到了這個問題,但答案只表示他們可以解決它,沒有人努力寫下他/她做了什麼
  • 我改變了TokenEndpointPath幾次,以避免它可能會與其他人衝突但是,我的機器上沒有任何其他服務
  • 我讀過OAuth端點不完全是服務端點,我看到了一段代碼片段,但整篇文章是關於CORS的,我不想混合所有內容
  • 我檢查了IIS日誌,只是事實具體POST和404
  • 我檢查事件查看器,沒有什麼
  • 我這裏檢查了相關的問題,但沒有

所以,我跑出去的想法,我認爲我做了一些愚蠢的,和我想請求你的幫助!

回答

0

您提到oauth2令牌端點URI如下,但您的代碼片段並不是說代碼似乎在您創建的「TokenEndpointPath」變量中缺少「驗證」字符串。我在下面粘貼了更正的代碼。我不知道,如果你的問題是簡單的:)

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") 
      }; 
+0

喔,我在這裏貼了錯誤的代碼。你說得對,他們不匹配。但是,這不是問題所在。我還不知道是什麼問題。當我開始在這個問題上再次研究這個問題時,讓我的機器在夜間不受影響,令牌端點爲第一個請求做出了迴應,之後我再次獲得了404。我經歷了Taissen編寫的另一個教程,現在我有一個工作令牌端點,但不與Webapi服務器分離。我現在很高興。稍後,我會花一點時間來重構它。 – SayusiAndo 2015-04-05 12:53:41

+0

正如你所提到的,「令牌端點回答了第一個請求,之後我再次得到了404」,我認爲這種行爲與「用戶在給定的時間內發送了太多的請求(」rate限制 「)」。看起來您在一段時間內可以發送的請求數量有限制。但是,在這種情況下,服務器應該返回「429」http狀態,但不是「404」。 – 2015-04-05 13:10:08

+0

@SayusiAndo很高興我的帖子很有用,但我想在Web API項目中默認沒有應用速率限制,限制和速率限制應該實現。 – 2015-04-08 17:44:32