WSO2 身份服务器 5.7.0 撤销方法不起作用

问题描述

WSO2 身份服务器 5.7.0 撤销方法不起作用,导致错误代码:401 -> 取消授权。

this link 说明了如何使用 revoke 方法,我想将其用于 c# 代码

    WebRequest request2 = WebRequest.Create("https://localhost:9443/oauth2/revoke?token=" + accesstoken + "&token_type_hint=access_token");
    request2.Method = "POST";
    request2.PreAuthenticate = true;
    request2.Credentials = CredentialCache.DefaultCredentials;
    ServicePointManager.ServerCertificateValidationCallback += (sender,certificate,chain,sslPolicyErrors) => true;
    request2.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
    request2.Headers.Add("Authorization","Basic " + "YFnfIeUVkpW64sSysLgoqajioOIa" + ":" + "L7rtcwWDqAQ6NdsvY2ZqUTAi5wMa");
    var response2 = request2.GetResponseAsync();
    response2.Wait();
    var t = response2.Result;

解决方法

您必须对授权标头中的 : 值进行基本的 64 位编码。标题应该看起来像,

Authorization: Basic WUZuZkllVVZrcFc2NHNTeXNMZ29xYWppb09JYTogTDdydGN3V0RxQVE2TmRzdlkyWnFVVEFpNXdNYQ==

如果您在文档中尝试 curl 命令,--basic -u "<client id>:<client secret>" 部分将做同样的事情,如果您向命令添加 -v 选项,您可以看到与 curl 请求一起发送的实际标头值.