首页 > 解决方案 > 如何请求访问代码和令牌 C# Oath2.0

问题描述

示例 URL: https ://test.test.com/services/data,\n

在邮递员中,当我单击获取新访问令牌时,我提供回调 URL、授权 url、accesstokenurl、clientID、clientSecID、Granttype:

当我单击请求令牌时,我会弹出一个窗口以使用用户名,密码登录。然后在 1 次 OTP 验证后不再需要它。最后使用令牌并使用原始正文数据,我获取 url 并返回 200 状态代码。如何以编程方式在 c# 中执行请求令牌部分?

就我获得 Oath2.0 而言,它为身份验证代码获取 URL => 使用该代码获取访问令牌 => 最后使用带有令牌的 post url 工作。

当我在邮递员中单击代码时,它为 C# - RestSharp 生成代码。现在这是令牌已经存在的情况。请求令牌部分也有相同的东西吗?

使用生成的代码,我可以看到如下内容:

request.AddHeader("Cookie", "BrowserId=RtFiu8ysE; BrowserId_sec=RtFiu8y; rememberUn=true; login=c3Jpc3JpLm; com.xxxxxxxx.LocaleInfo=us; oinfo=xxxxxxxxx=; autocomplete=1; oid=xxxxxxxxx; webact=%7B%22l_vdays%22%3A1%2C%22l_visit%22%3A1xxxxxxxxx3%2C%22session%22%3Axxxxxxxxx448%2C%22l_search%22%3A%22%22%2C%22l_dtype%22%3A%22%22%2C%22l_page%22%3A%22SFDC%3Aus%3Alogin%3Adeveloper%22%2C%22counter%22%3A3%2C%22pv%22%3A1%2C%22f_visit%22%3Axxxxxxxxx682%2C%22seg%22%3A%22non-customer%3Aus%22%2C%22developer%22%3Axxxxxxxxx43%7D; sfdc_lv2=xxxxxxxxxnx/Slxxxxxxxxxg+aoxxxxxxxxxJmq/6lDwolM=");

因此,对于 browserId、login、oinfo、oid 等这些值,我将如何进入 c#?

基本上,这是如何工作的?像获取身份验证代码一样,我需要进行 httprequest 吗?我应该先点击哪个网址?回调或授权?根据他们的文档:他们说要获取:https://xxx.xxx.com/services/oauth2/authorize? client_id=xxxxxxx& redirect_uri=https://www.xxxxxx.com/oauth2/callback& response_type=code 然后

https://www.xxxxx.com/oauth2/callback? code=tesauthcodexxxx

接着

POST /services/oauth2/token HTTP/1.1 Host: xxxxx.xxxxxxxx.com Content-length: 307 Content-type: application/x-www-form-urlencoded grant_type=authorization_code& code=xxxxxxx& client_id=xxxxxxx& client_secret=*******& redirect_uri=https://www.xxxxxx.com/oauth2/callback

我检查了许多使用 Oath2.0 的帖子,但他们到处都说他们已经有了令牌 [但是如何获得授权码]。

我是 Oath2.0 的新手。我知道我在理解概念方面缺少很多东西,但有时交付与新人有关。对不起,很长的帖子。

标签: c#restoauth-2.0authorizationpostman

解决方案


根据身份验证服务器的支持(但我假设它们完全符合 OATH2),请查看The IdentityModel Package for C#。这将为您节省大量尝试自己重新发明轮子的时间。使用给定的文档,您可以在几分钟内启动并运行它。


推荐阅读