gpt4 book ai didi

cakephp - 如何: CakePHP logging in without password?

转载 作者:行者123 更新时间:2023-12-03 23:30:46 27 4
gpt4 key购买 nike

我正在尝试找到一种无需密码即可登录用户的方法。

原因是我的站点中有 phpBB3 论坛,并且用户已经在那里登录。因此,我现在正在对该站点进行扩展,使其不仅仅是论坛(使用 CakePHP)。我想我可以在用户创建论坛帐户时将自动帐户创建附加到 CakePHP(当然还有现有用户的其他链接)。因此,用户将获得与他们在论坛中注册的用户名相同的 CakePHP 帐户。这意味着要注册到站点的 CakePHP 部分的唯一方法是先注册到论坛。

现在我想通过 phpBB3 登录来处理整个日志记录的事情,这样用户仍然可以登录到论坛,然后我会附上一段代码,让他们也可以使用他们的用户名登录到网站的 CakePHP 部分用于登录论坛。

这样我还可以根据用户在论坛中的状态将用户放入他们自己的 ACL 组。

这就是我所追求的,我需要知道以这种方式登录用户的方式。 我不是在寻找完整的代码,我只是在寻找一个答案,解释我如何在没有密码的情况下在 CakePHP 中登录用户。

我也看了http://bakery.cakephp.org/articles/wilsonsheldon/2009/01/13/phpbb3-api-bridge但它看起来不太像我要找的东西......

最佳答案

据我所知,Auth 需要两条信息才能登录。您可以更改用户表中的哪些字段由 auth 检查。

$Auth->fields = array(
'username' => 'username',
'password' => 'password'
);

因此,如果您希望能够根据用户的昵称和鞋码登录用户:

$Auth->fields = array(
'username' => 'nickname',
'password' => 'shoesize'
);

重要提示:
AuthComponent 期望存储在数据库中的密码值被散列而不是以明文形式存储。
(我认为是密码和Security.salt的sha1)

在上面的示例中,如果数据库中已经存在任何条目,您必须使用鞋码的散列版本覆盖每个条目的鞋码字段。

要自己生成散列密码,您可以使用 $Auth->password('A Password');


快速而肮脏

如果您使用以下返回值填充用户表中的密码字段:$Auth->密码(null);

然后您可以使用以下内容:

$Auth->login(
array(
'User'=>array(
'username'=> USERNAME_FROM_PHPBB3,
'password'=>null
)
)
);

不那么快速和肮脏


创建新用户时。将密码字段设置为一些随机输入的 md5 哈希值。

$this->authUser[$this->User->alias][$Auth->fields['password']] = $Auth->password(md5(rand().rand()));

使用 phpBB3 中的用户名检索相关记录来自数据库中的用户表。

$this->authUser = $this->User->findByUsername( USERNAME_FROM_PHPBB3 );

如果查询成功登录用户

if($this->authUser){
if($Auth->login($this->authUser)){
// Login Successful
}
}

关于cakephp - 如何: CakePHP logging in without password?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5531410/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com