我注意到这个问题是很老的和没有答复,我也相似,所以我将分享我的两分钱的东西工作。希望你现在已经解决了这个问题。
你的用户管理系统应提供整个登录过程中只完成后的会话密钥,这意味着你应该让用户在他们完成所有步骤都提供权威性的数据之后。
- 收到用户名和密码
- 支票凭证和身份验证选项
- 如果凭据是确定并没有启用谷歌验证,给他的会话密钥,否则重试
- 如果credetials是确定并启用谷歌验证,通过$ _ POST [“用户”]挑战形式
- 如果TOTP密码与服务器端的检查,返回会话密钥,否则重试
$_POST[] ----> loginCheck() ----> if(GAuth) ----> checkTotp() ----> sessionKey
| |
*---------------------------------*
loginCheck()应检查用户和密码都OK,否则拒绝访问
如果(GAuth)应返回true或false,depeding如果你的用户使用GAuth
checkTotp应在客户端和服务器上检查TOTP密码的方法
sessionKey应该是用于访问受保护内容,存储服务器端和客户端一段时间的令牌
或者适应这种想法你的需要......在我看来,你应该接受的时候,他通过了所有的认证试验系统中的用户。
你可以让用户表单hols用户名/密码和密码,然后一次处理所有数据,并避免两页。
了解更多关于https://tools.ietf.org/html/rfc6238
这基本上是我终于实现了。感谢发布! – 2013-01-16 19:46:00
好吧,祝你有个愉快的一天 – 2013-01-16 19:48:06