0

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

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

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

在用户对我的应用程序进行身份验证并进行回调之后要知道的任何想法或想法如何知道是哪个提供商在后面的代码中向我发送了该回调?

4

2 回答 2

3

你不能让他们去不同的回调网址吗?他们需要访问相同的 URL 是否有原因?

于 2012-09-06T05:02:22.463 回答
0

您可以将此信息包含在 OAuth 2.0 授权请求的state参数中(您应该已经使用该参数来防止 CSRF 攻击),例如通过附加 a _fbor_ig到它。

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

于 2012-09-06T12:58:33.157 回答