我正在使用 Asp.Net Web Api 编写Web应用程序。我的应用程序从Dropbox获取用户文件。要做到这一点,用户首先必须允许访问他的存储(OAuth2的通常行为)。问题是我在“允许”重定向后无法获得授权用户(在我的应用程序中的控制器操作中),因为此重定向不包含带有承载令牌的授权标头(这是我的应用程序所必需的)。我需要我的应用程序用户ID来存储访问令牌(来自Dropbox)。
我正在使用DropboxRestAPI库访问Dropbox Api(https://github.com/saguiitay/DropboxRestAPI)
这是控制器操作,接受来自Dropbox的用户代码的重定向:
[AllowAnonymous]
[HttpGet]
public void AuthoriseDropbox(string code = null, string error = null) {
var options = new Options {
ClientId = "...",
ClientSecret = "..."
};
var client = new Client(options);
var token = await client.Core.OAuth2.TokenAsync(code);
// save token in Db for current user
// will be null because request from Dropbox without Authorization token
var userId = User.Identity.GetUserId();
// store token for particular user
...
}
我所知道的唯一解决方案是将令牌作为响应发送,并使用该令牌发出授权请求。
但在这种情况下,更好的解决方案是什么?
由于