Azure devops 返回Azure Devops REST API 203

Azure devops 返回Azure Devops REST API 203,azure-devops,azure-devops-rest-api,azure-devops-extensions,Azure Devops,Azure Devops Rest Api,Azure Devops Extensions,当用户注册我们的应用程序时,我们要求他们完成oAuth过程。我们首先向他们询问他们的组织,因此我们可以使用oauth期间收到的访问令牌来发出请求 下面是我们用于执行此操作的代码示例: var client = new RestClient(); var createItemRequest = new RestRequest("https://app.vssps.visualstudio.com/oauth2/token", Method.POST);

当用户注册我们的应用程序时,我们要求他们完成oAuth过程。我们首先向他们询问他们的组织,因此我们可以使用oauth期间收到的访问令牌来发出请求

下面是我们用于执行此操作的代码示例:

var client = new RestClient();
            var createItemRequest = new RestRequest("https://app.vssps.visualstudio.com/oauth2/token", Method.POST);

            string body = $"client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&" +
                $"client_assertion={HttpUtility.UrlEncode(clientSecret)}&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer" +
                $"&assertion={HttpUtility.UrlEncode(code)}&redirect_uri={redirectUrl}";

            var formData = Encoding.UTF8.GetBytes(body);
            createItemRequest.AddParameter("application/x-www-form-urlencoded", formData, ParameterType.RequestBody);

            var accessTokenResponse = client.Execute(createItemRequest).Content;
            _logger.LogInformation($"accessToken response: {accessTokenResponse}");
            var accessTokenObject = JsonConvert.DeserializeObject<AccessTokenResponse>(accessTokenResponse);

            if (accessTokenObject != null
                && !string.IsNullOrEmpty(accessTokenObject.AccessToken)
                && !string.IsNullOrEmpty(accessTokenObject.RefreshToken))
            {   _logger.LogInformation($"We have access token and refresh");}
var client=new RestClient();
var createItemRequest=新的重新请求(“https://app.vssps.visualstudio.com/oauth2/token“,方法。邮政);
string body=$“client\u assertion\u type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&”+
$“client_assertion={HttpUtility.UrlEncode(clientSecret)}&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer”+
$“&assertion={HttpUtility.UrlEncode(code)}&redirect_uri={redirectUrl}”;
var formData=Encoding.UTF8.GetBytes(正文);
createItemRequest.AddParameter(“application/x-www-form-urlencoded”,formData,ParameterType.RequestBody);
var accessTokenResponse=client.Execute(createItemRequest).Content;
_logger.LogInformation($“accessToken响应:{accessTokenResponse}”);
var accessTokenObject=JsonConvert.DeserializeObject

HTML返回:


我的问题是,为什么有些用户收到203而有些用户没有?我们不知道发生这种情况时应该告诉用户什么-他们检查什么?为什么会发生这种情况?他们如何修复它?

“当我们使用访问令牌进行第一次呼叫时,一些用户会收到203响应”,这意味着203错误只在第一次发生?还是永远?您是否检查了他们脚本中的承载格式是否正确,如在承载令牌之前添加冒号
。你可以让他们和邮递员核对并分享结果。不,这都是我们的剧本。我们获取访问令牌,在他们在scopes/permissions屏幕上接受后刷新,并存储它,然后进行项目API调用。大多数情况下,我们都会得到很好的回复,并得到项目。。。。但我希望,如果用户自己没有访问项目的权限,他们将获得未经授权的not 203。通过注册backrightup.com自己尝试一下。我会检查两件事:对于用户来说,错误是否一致?例如,在一段时间后重试是否成功?该错误是否在整个组织内一致?例如,是否在给定组织内的所有用户中都会发生这可能表明它取决于组织配置。这可能是实际用户权限的问题。但我们不确定..这可能是实际用户权限的问题。但我们不能确定。。