我正在使用WSSE身份验证(通过Symfony2),我定义了以下经典登录流:
- 用户输入其用户名&密码,从服务器获取相关的盐
- 用户名,在服务器(ajax调用)上通过WSSE头检查 检查密码。
- 如果凭据是有效的,那么所需的数据(即允许在每次请求时重新生成WSSE头的数据)存储在浏览器上
工作正常
现在,我想添加"login with facebook"功能。这不是问题,有很多关于它的文档,但是,我的目的& &;我的困难是保持WSSE逻辑工作
如果用户使用Facebook登录,则永远不会输入其密码,因此我无法生成wsse头,因此根本没有文档。
会有人已经处理过这样的操作吗?提前感谢
我找到的解决方案如下:
1)创建一个web服务,但不是在wsse防火墙下,而是由标头令牌或其他类似x-token的东西保护:fdslkjl324l2lrkljlkfsjflkjfkljl2,它返回从数据库中为给定用户加密的密码。
例如:你应该有一个webservice来获取用户的salt来加密用户的密码,以便通过wsse API进行身份验证。
2)使用经典的wsse webservices,并从wsse
后面的加密密码生成令牌现在您已经加密了密码,您可以简单地在wsse服务下进行身份验证。最重要的是,您不需要以明文形式输入用户密码。