如何为access_token交换授权代码?

时间:2013-03-25 07:19:20

标签: asp.net-mvc-3 google-api oauth-2.0 dotnetopenauth

我正在尝试通过DotNetOpenAuth和the dotnet library for Google Tasks使用OAuth 2.0访问Google Tasks。

说实话,我对整个OAuth流程感到有些困惑,但无论如何。

我正在尝试按照OAuth2游乐场在我的应用程序中执行的相同过程:即

  1. 用户点击链接以授权应用
  2. App使用DotNetOpenAuth构建对Google的请求
  3. 向用户显示“我的应用程序想要...”屏幕并授权该应用程序
  4. 浏览器使用授权码重定向到callback_uri
  5. 代码交换为access_token
  6. 访问令牌用于后续请求
  7. 我并不担心刷新令牌或其他任何东西。

    所以我要完成第5步并且卡住了。我无法弄清楚如何交换访问令牌的授权码。

    我在名为OAuthAuthenticator<T>的{​​{1}}(Google Tasks lib的一部分)上调用了一种方法,这听起来像是正确的方法,但这会导致以下错误:

      

    中缺少以下必需参数   DotNetOpenAuth.OAuth2.Messages.AccessTokenAuthorizationCodeRequest消息:redirect_uri

    但是,从我的代码中可以看出,我在调用LoadAccessToken之前设置了回调。

    这是我的代码:

    LoadAccessToken

    有什么想法吗?

2 个答案:

答案 0 :(得分:1)

Check out the documentation有关如何使用DotNet.OAuth2代码的示例。它有一个很好的例子来向您展示如何获得OAuth舞蹈设置。

答案 1 :(得分:1)

此示例可能更接近您要执行的操作。 http://www.limilabs.com/blog/oauth2-gmail-imap-web-applications