我正在运行一个经典的ASP网站,它有自己的用户认证和登录机制。例如,为了记住一个登录的用户,ASP为每个连接的用户创建一个加密的cookie和一个20分钟的会话。如果20分钟的会话已过,服务器将从先前保存的cookie中恢复会话,并将有关用户的一些数据保存到数据库中。
我希望能够允许用户连接到他们的Facebook或Google身份,但Facebook或Google使用的机制主要是基于Javascript和客户端代码。
-
如何在ASP中维护服务器端代码时使用Facebook或Google登录?(这样ASP服务器仍然可以管理会话并保存有关它的数据,例如当会话被恢复时)
-
对我来说,似乎使用客户端身份验证可能会变得不那么安全,因为代码可能很容易被更改。不是这样吗?
-
如果我使用客户端javascript并登录Facebook,我如何将从Facebook检索到的用户数据更新回我的数据库,例如用户的姓和名?
-
对我来说,这听起来应该是一个"服务器到服务器"的通信(在我的ASP服务器和Facebook或谷歌的服务器之间),他们提出的是一个"客户端到服务器"的通信…有什么办法吗?
任何帮助或解释将非常感激!谢谢。
我会一一回答你关于facebook的问题。但是,我不会给您一个实现或任何特定于asp的反馈,而只是一个粗略的方法。此外,我建议您广泛研究Facebook的Facebook登录文档,以进一步了解此事。
1。Facebook在他们的manual Build a Login flow指南中记录了服务器端OAuth 2.0流程。基本上,你将用户重定向到一个特定的FB URL,(在参数中)告诉FB呈现"Login with facebook";对话框,以及要请求的权限范围。一旦用户批准了你的web应用的Facebook登录,他们将被重定向回你的web应用,例如,在查询字符串中使用OAuth令牌,然后你的web服务器可以交换用户访问令牌。
一旦你获得了一个用户访问令牌,你可以将它存储在你的web应用程序用户的会话中。
2。我不明白你的意思。客户端应用程序相当安全。也许当你读到CORS之类的东西时,你可以说服自己JS应用程序是多么安全。
3。如果你只使用JavaScript(例如Facebook的JS SDK),并且你想在你的服务器上存储例如应用范围的用户id,你需要在你的服务器上公开一个端点,你的JS应用程序可以提交这种信息。
4。你的状态
他们提出的是"客户端到服务器"沟通
"他们"是谁,他们在哪里提出这个建议?我在1中链接到的资源。应该解释如何以纯服务器对服务器的方式使用Facebook登录