首页 > 解决方案 > 我需要通过 C# 对 Facebook 用户进行身份验证,而不需要 JS SDK

问题描述

我意识到这种问题之前已经被问过很多次了,但我正在寻找一个快速可用的代码库来实现以下内容:通过 Facebook 进行 SSO 登录作为外部身份验证,并检索当前用户的电子邮件(假设他们授予访问权限)。我仅限于 ac# 环境,而且 c# 解决方案或实现似乎很少而且相距甚远。JS 在这种情况下是不可接受的,我似乎不断地碰壁“使用带有 Graph API 的 Facebook JS SDK”。

ANYBODY 是否为 C# 中的简单身份验证和后续用户数据检索创建了一个主要的服务器端解决方案?我最终需要的只是电子邮件地址。

我最大的问题再次是,这必须是一个主要的服务器端实现,并且最广泛记录的资源都是面向 PHP 和/或 JavaScript 的。

欢迎任何帮助。在此先感谢...我几乎没有选择...

背景:对于许多访问一个站点而不必创建登录名的用户来说,这将是一种 SSO 类型的情况……问题是,在进行身份验证后,我必须收到他们的电子邮件(前提是他们同意)。

我浏览过过时的库,解决方案更多地与墙和页面交互等有关。我的需求非常简单。需要身份验证和电子邮件检索。

我有一个已经在 FB 注册的应用程序,并且我已经获得了一个有效的“不记名”类型的访问令牌。这就是我迷路的地方...

同样,我不能使用基于 FB JS 的 SDK。啊

编辑:我尝试使用Piotr Gankiewicz的库,但它似乎是为了更复杂的目的而构建的。我似乎无法弄清楚应该是一个相对简单的过程。

编辑 2:我使用“Facebook 登录”产品开始了这个过程,但它似乎在身份验证之后出现故障,并且我在范围内请求“电子邮件”。没有错误,只是没有电子邮件,而且我控制的测试和真实账户都是如此。

我发现的所有内容都开始引用 SDK 并使用 Graph API。我真的不知道我错过了什么。

编辑3:我所做的快速示例(不,这还不是全部,但它是最有意义的开始):

链接到: https://www.facebook.com/v3.3/dialog/oauth?client_id=[Client_Id]&redirect_uri=https://localhost:44304/auth/facebook&response_type=code&scope=public_profile,email&state=[Long_Code_To_Verify_Call]

我使用该帖子的结果来完成并获取以下内容: string getTokenUrl = " https://graph.facebook.com/v3.3/oauth/access_token?client_id=[Client_Id]&scope=email&redirect_uri=https://localhost :44304/auth/facebook&client_secret=[Client_Secret]&code= " + [Code_Returned_From_Previous_Post];

在初始登录请求简单之后,对于我的目的来说,Graph API 似乎有点过头了。这也是我第一次尝试实现 OAuth 解决方案......

标签: c#facebookoauth

解决方案


我在详细请求中使用了错误的令牌。我的解决方案是 frankencode,但它有效。很抱歉浪费了宝贵的字节。感谢 BlueWater86。


推荐阅读