我很幸运有DotNetOpenAuth做3腿授权。目前,我正在连接并提取一些Google数据。
我的问题是,显然,如果您已将我的网络应用程序授权给您的Google帐户,那么当我致电时
var accessTokenResponse = google.ProcessUserAuthorization();
它基本上什么都不做。如何获取已经为我的应用程序授权的帐户的令牌?我看不到任何形式的回调。
我将这一点归咎于我对OAuth的无知。
答案 0 :(得分:2)
您必须使用自己的InMemoryTokenManager
实现替换DotNetOpenAuth附带的示例IConsumerTokenManager
,该实现存储数据库中的访问令牌和机密。然后将该接口的实例传递给WebConsumer
类,它将接收所有传入的令牌和秘密。
在调用ProcessUserAuthorization
或在您的令牌管理器类中时,您还必须将您保存的访问令牌与当前登录到您网站的用户的用户帐户相关联。
然后,当用户下次访问您的网站时,您会在数据库中查找其用户帐户以获取其访问令牌。并将其用于将来的请求。您的IConsumerTokenManager
将根据需要提供相关的令牌密码,生活将会很好。