我正在根据 xero 文档断开与 xero 的连接,该文档是撤销连接并删除连接的组织并且两个 api 都工作正常。但是当我断开连接并再次单击连接时,它仍然记得以前连接的组织,并且没有显示组织的 xero 页面,它会将我重定向回我的应用程序,我现在已连接。
但我希望 xero 显示它的页面,我可以在其中选择我想要的组织。现在我正在从浏览器中删除 XeroIdentity cookie。这是一个好方法,因为它现在向我显示登录页面?如果不是,请建议我这样做。
这是我断开连接的代码
public async Task<JsonResult> RemoveConnection(string token, string Id)
{
try
{
if (Id == null)
{
return Json("Please connect with Xero first");
}
else
{
var accessToken1 = "";
var tenantId1 = "";
var token1 = await _tokenStore.GetAccessTokenAsync(Id);
accessToken1 = token1.AccessToken;
var restclient1 = new RestClient("https://identity.xero.com/connect/revocation");
var request1 = new RestRequest(Method.POST);
string encoded = base64encode(Configuration["xero:clientid"] + ":" + Configuration["xero:clientsecret"]);
request1.AddHeader("authorization", string.Format("basic {0}", encoded));
request1.AddHeader("content-type", "application/x-www-form-urlencoded");
request1.AddParameter("application/json",string.Format("token={0}", accessToken1),ParameterType.RequestBody);
var response1 = restclient1.Execute(request1);
var connections1 = await _xeroClient.GetConnectionsAsync(token1);
foreach (var connection in connections1)
{
accessToken1 = token1.AccessToken;
tenantId1 = connection.id.ToString();
var restClient = new RestClient("https://api.xero.com/connections/" + tenantId1 + "");
var request = new RestRequest(Method.DELETE);
request.AddHeader("Authorization", string.Format("Bearer {0}", accessToken1));
var response = restClient.Execute(request);
var x = response.Content;
var connections12 = await _xeroClient.GetConnectionsAsync(token1);
}
var details = new { Result = "Disconnected", Status = "Ok" };
return Json(details);
}
}
catch (Exception ex)
{
return Json(ex.Message);
}
}