Jie*_*eng 2 authentication symfony
来自UserInterface类
interface UserInterface {
/**
* The equality comparison should neither be done by referential equality
* nor by comparing identities (i.e. getId() === getId()).
*
* However, you do not need to compare every attribute, but only those that
* are relevant for assessing whether re-authentication is required.
*
* @param UserInterface $user
* @return Boolean
*/
function equals(UserInterface $user);
}
Run Code Online (Sandbox Code Playgroud)
我应该如何实现这一点(" 那些与评估是否需要重新认证相关的那些 ")?那么这是否意味着它在Symfony 2重新认证(用户名/密码)后用户?或者是此功能用户重新进行身份验证.我可以查一下id, username, password, salt吗?Symfony不通过密码检查重新验证用户,这应该足够了吗?
如果equals()返回false,用户将被迫重新进行身份验证.你究竟检查了什么取决于你,因为它因应用程序而异.通常,您需要比较影响应用安全性的用户可能发生的变化.
例如,如果您的应用中使用了电子邮件和密码进行身份验证,则需要对其进行比较.相反,比较名字和姓氏字段没有意义,因为它们不会影响与您的应用程序中的身份验证相关的任何内容 - 当然,除非您的应用程序身份验证以某种方式基于它们.
如果您在应用程序中支持不同的角色(例如,admin和普通用户),并且您的应用程序提供了一种向用户分配和重新分配这些角色的方法,那么您还需要比较角色.因为如果您想要将用户从管理员降级为普通用户,您希望该更改尽快生效 - 在用户的下一个请求中 - 而无需明确要求用户注销和重新登录.如果在这种情况下不比较角色,则用户将保持管理员直到她的会话到期.
检查ID没有意义,除非您的应用提供了更改用户ID的方法,并且它们在您的应用中用于身份验证.我也不会检查盐,因为如果它改变了也意味着密码也改变了,所以单独检查密码就足够了.
| 归档时间: |
|
| 查看次数: |
2878 次 |
| 最近记录: |