.NET应用程序中的多个OAUTH提供程序如何处理相同的查询字符串?

时间:2012-09-06 01:46:32

标签: c# .net facebook-graph-api oauth instagram

我正在创建一个.NET应用程序,在我的一个屏幕上,我有不同的服务来连接使用OAUTH。

两个例子是Facebook和Instagram。我允许用户授权我的应用程序访问这些应用程序。一切都运行得很好,但我无法找到一个好方法来了解用户选择哪个提供商(我有一个简单的按钮点击每个服务)回调,因为Facebook和Instagram都返回查询字符串上的“代码”。然后用它来完成OAUTH授权的最后一步。

我尝试在会话中存储每个服务的按钮点击,但是我的会话在重定向到提供者授权URL以及在回调上返回我的应用程序时被删除(甚至是使用Redirect(url,false)我的会话)会话仍在清理中)。所以基本上我不知道用户点击了授权从(Facebook或Instagram)回来的服务的按钮。

在用户对我的应用进行身份验证后,您需要了解任何想法或想法,并且回调是如何知道提供商在代码中向我发送回调的?

2 个答案:

答案 0 :(得分:3)

你不能让他们去不同的回调网址吗?他们需要转到同一个网址是否有原因?

答案 1 :(得分:0)

您可以在OAuth 2.0授权请求state parameter(您应该已经使用它来防止CSRF攻击)中包含此信息,例如:通过向其添加_fb_ig

然而,更方便的方法是使用不同的回调。