我们必须有一个通过用 java 编写的 Web 服务可用的“注册”方法,因此从今往后我们无法访问 Drupal API。但我们需要能够成功注册用户。简单地将用户添加到用户表中是行不通的,因为新创建的用户永远无法成功登录。我再次喜欢 Drupal API,并且总是使用它,因为这是“正确”的方法,但在这种情况下,我们只是没有能力这样做。对这个困境有什么见解吗?
您将需要逐步完成user_save() http://api.drupal.org/api/function/user_save/6API 函数可帮助您了解 Drupal 在创建新用户时执行的操作。
Drupal 在保存此类数据方面并没有什么深奥的魔力:它都在数据库中。因此,虽然不能使用 Drupal API 并不理想,但实际上您只处理两个数据库插入:{user}
表插入(您已经完成),以及{users_roles}
表插入。
根据您的信息,我怀疑缺少的链接是您没有向{users_roles}
新用户 UID 的表。中的相关行user_save()
:
db_query('INSERT INTO {users_roles} (uid, rid) VALUES (%d, %d)', $account->uid, $rid);
Where $account->uid
是新创建用户的 UID,并且$rid
是您要授予用户的角色的 ID。新用户至少需要authenticated user
role.
其他一切都在user_save()
主要是健全性检查(user_save()
除了创建新用户之外还处理更新用户)和钩子触发,对于此用例,您可能不需要担心。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)