如何使用facebook 中使用的访问令牌概念。
1)我们可以在基于 ASP.NET 的 Web 应用程序中实现相同的概念吗?
2)我们可以使用这个概念来增加 Web 服务ASMX和WCF
访问的安全性吗?
2 回答
经过很长时间我找到了我发布的答案。
如果我错了,请检查我的答案。
1) 在 Facebook 服务器流认证中,当用户成功认证时,Facebook 生成授权码参数名称为 code。
2)在第二步中,使用所有这些参数授权代码和client_secret 、 client_id 、redirect_uri、状态调用Webrequest或调用服务,如果成功则 响应有两个参数accessToken,expires _ in 。
3) 此accessToken用于获取具有指定范围的用户信息,如名字、姓氏、生日等。
这是通过将有效的 accessToken 存储到安全的地方或进一步使用来与 WCF 和 ASMX Web 服务一起使用的一般场景。
1)访问令牌只是一些参数的哈希,例如:
MD5(userName, userMail, someSalt, someOtherStuff)
因此,您可以确定以您喜欢的方式实施它。但是如果它包含一些secret
只能由当前用户检索的信息会更好
2)是的,你可以。正如 facebook 这样的社交网络所做的那样:
有一些在服务器端(您的服务运行的地方)已知的应用程序密钥,以及一些可以从 facebook api 检索某些应用程序和用户的签名以及一些其他信息。
您的 Facebook 应用程序获得该签名,它可以使用它与其他参数(如 userLogin、应用程序分数或 w/e 其他参数)生成哈希和。将其发送到服务器。
在服务器端,您生成签名的方式与基于参数的应用程序相同。如果签名相同,则请求有效。如果知道 - 有人试图做肮脏的事情:)