我使用Flexi-auth库进行用户身份验证,通用登录程序正常工作。Flexi支持第三方(谷歌/雅虎)登录吗?如果是,怎么办?
发布于 2015-03-08 23:55:43
我已经浏览了一段时间的文档,但没有找到一种真正实现这一目标的正式方法。但是,通过查看代码,我发现用户实际上是通过调用一个名为set_login_sessions的函数登录的。然而,该函数对Flexi_auth_model类是私有的。
如果您完全确定您不会引入任何您尚未通过其他方式处理的漏洞,则可以按照以下方式定义您自己的方法:
public function login_3rd($identity = FALSE) {
// Check logins, activation, suspensions etc like `Flexi_auth_model::login`
// Confirm the login with the OAuth service
// Query the DB to get the user
set_login_sessions($user, FALSE);
}其中大部分内容与login函数非常相似,但都经过了第三方身份验证的调整。
在调用$logged_in_via_password时,重要的是将set_login_sessions参数设置为FALSE。web应用程序中有一些敏感区域(比如取款或其他东西)应该要求用户在通过密码之前输入密码。这会使重新打开浏览器的朋友(或通过恶意方式获取会话的人)无法访问某些东西。Flexi提供了一个is_logged_in_via_password,允许您检查这一点。但如果我们不说实话就没用了。
https://stackoverflow.com/questions/22742276
复制相似问题