OAuth2.0授权码存储在何处?

hgtggwj0  于 2023-02-03  发布在  其他
关注(0)|答案(1)|浏览(292)

我正在开发一个C#应用程序,它需要连接一个基于Web的API。当连接API时,它做的第一件事是尝试从授权服务器获取授权码。使用RestSharp,我的代码如下:

static string GetAuthCode(string authUri, string clientId, string scope, Guid state, string callbackUri)
        {
            var client = new RestClient(authUri);
            var request = new RestRequest("", Method.Post);

            client.Options.MaxTimeout = -1;
              
            request.AddParameter("client_id", clientId);
            request.AddParameter("response_type", "code");
            request.AddParameter("scope", scope);
            request.AddParameter("state", state);
            request.AddParameter("redirect_uri", callbackUri);
             
            RestResponse response = client.Execute(request);

            if (response.IsSuccessful)
            {
                string code = HttpUtility.ParseQueryString(response.ResponseUri.Query).Get("code");
                return code;
            }
            else
                throw new Exception(response.Content);
        }

当我调用这个方法时,响应是成功的,但是我希望得到的授权码会被附加到响应的ResponseUri属性(在它的Query属性中)。但是它没有。ResponseUri属性被设置为授权Uri(authUri)。我是否找错了授权码的位置?我在哪里可以找到实际的授权码?

bnl4lu3b

bnl4lu3b1#

它应该在查询参数中:
如果资源所有者赠款访问请求,则授权
服务器发出授权码并通过以下方式将其传递给客户端
将以下参数添加到的查询组件
使用“应用程序/x-www-form-urlencoded”格式的重定向URI,按照附录B:
4.1授权码授予- 4.1.2授权响应

相关问题