【问题标题】:Server Not Finding Callback Url服务器找不到回调 URL
【发布时间】:2017-05-01 23:41:51
【问题描述】:

我正在尝试在我的 WebAPI 应用程序中使用 Fitbit 实现 OAuth2。我能够向 fitbit api 发出初始请求。但是当它返回服务器时,我收到一条错误消息,说我找不到回调 url

OAuthController

[HttpPost]
public async Task<HttpResponseMessage> Authorize(UserAuthRequestDTO request)
{
   if (string.IsNullOrEmpty(request.PatientID) || string.IsNullOrEmpty(request.Provider))
      Request.CreateResponse(HttpStatusCode.BadRequest, ErrorLookup.GetErrorMessage("invalid_input"), Configuration.Formatters.JsonFormatter);
      var userId = User.Identity.GetUserId();
      if (userId == null)
          return Request.CreateResponse(HttpStatusCode.BadRequest, ErrorLookup.GetErrorMessage("invalid_token"), Configuration.Formatters.JsonFormatter);
            var accUser = await GetUserById(userId);
      _currentUser = AccountUtils.GetOrgAndUserInfo(accUser);

      var callbackUrl = $"{Request.RequestUri.GetLeftPart(UriPartial.Authority)}/oauth2/callback";
      IOAuthHandler handler;
      switch (request.Provider)
      {
          case "Fitbit":
              handler = new FitbitHandler(callbackUrl);
              break;
          case "Withings":
              handler = new WithingsHandler(callbackUrl);
              break;
          default:
              return Request.CreateResponse(HttpStatusCode.BadRequest, ErrorLookup.GetErrorMessage("invalid_input"), Configuration.Formatters.JsonFormatter);
      }
    var authorizationUrl = handler.RequestUserAuthorizationUrl(request.PatientID,_currentUser.Org);
    return Request.CreateResponse(HttpStatusCode.OK, authorizationUrl);
}


[HttpPost]
public async Task<HttpResponseMessage> Callback(UserAuthDTO request)
{
    if (string.IsNullOrEmpty(request.PatientID))
        Request.CreateResponse(HttpStatusCode.BadRequest, ErrorLookup.GetErrorMessage("invalid_input"), Configuration.Formatters.JsonFormatter);
    var userId = User.Identity.GetUserId();
    if (userId == null)

【问题讨论】:

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


    【解决方案1】:

    您正在将回调 url 设置为

    ...oauth2/callback?code=3aa6e9e....

    但在你的行动中,你的路线是

    ...api/oauth2/callback

    您的定义中缺少"api"

    【讨论】:

      猜你喜欢
      • 2014-10-15
      • 1970-01-01
      • 2014-03-05
      • 2020-12-06
      • 1970-01-01
      • 2018-11-09
      • 1970-01-01
      • 1970-01-01
      • 2017-06-22
      相关资源
      最近更新 更多