使用 Facebook 或 Google 使用经典 ASP 登录 API

Using Facebook or Google login API with Classic ASP

我是 运行 经典 ASP 网站,它有自己的用户身份验证和登录机制。例如,为了记住登录的用户,ASP 为每个连接的用户创建一个加密的 cookie 和一个 20 分钟的会话。如果 20 分钟的会话结束,服务器会从先前保存的 cookie 中恢复会话,并将有关用户的一些数据保存到数据库中。

我希望能够允许用户使用他们的 Facebook 或 Google 身份进行连接,但是 Facebook 或 Google 使用的机制主要基于 Javascript 等客户端代码。

  1. 如何在 ASP 中维护服务器端代码的同时使用 Facebook 或 Google 登录? (这样 ASP 服务器仍然可以管理会话并保存相关数据,例如每当会话恢复时)

  2. 对我来说,使用客户端身份验证似乎不太安全,因为代码可能很容易被更改。不就是这样吗?

  3. 如果我使用客户端 javascript 并使用 Facebook 登录,我如何将从 Facebook 检索到的用户数据更新回我的数据库,例如用户的名字和姓氏?

  4. 对我来说,这听起来应该是一个 "server-to-server" 通信(在我的 ASP 服务器和 Facebook 或 Google 的服务器之间)以及他们的建议是一个 "client-to-server" 通信......有什么想法可以做到这一点吗?

非常感谢任何帮助或解释!谢谢

我会尽力一一解答您与 Facebook 相关的问题。但是,我不会给你一个实现或任何 ASP 特定的反馈,而只是一个粗略的方法。此外,我建议您广泛研究 Facebook 的 documentation on Facebook Login 以加深您对此事的理解。

1. Facebook 在其 Manually Build a Login Flow 指南中记录了服务器端 OAuth 2.0 流程。基本上,您将用户重定向到一个特定的 FB URL,它(在参数中)告诉 FB 呈现“使用 Facebook 登录”对话框,以及要请求的权限范围。一旦用户批准您的网络应用程序的 Facebook 登录,他们将被重定向回您的网络应用程序,例如在查询字符串中使用 OAuth 令牌,然后您的网络服务器可以交换用户访问令牌。
一旦您获得了用户访问令牌,您就可以,例如将其存储在您的网络应用程序用户的会话中。

2.我不明白你的意思。客户端应用程序相当安全。也许您可以在阅读 CORS.

之类的内容时说服自己 JS 应用程序的安全性

3. 如果您只使用 JavaScript(例如 Facebook 的 JS SDK)并且您想要存储例如服务器上应用范围的用户 ID,您需要在服务器上公开一个端点,您的 JS 应用程序可以将此类信息提交到该端点。

4. 你说

what they propose is a "client-to-server" communication

“他们”是谁,提出这个问题的人在哪里?我在 1. 中链接到的资源应该解释了如何以纯服务器到服务器的方式使用 Facebook 登录。