简单的外部认证(3)

老葛的Drupal培训班 Think in Drupal

聪明的读者将会注意到,如果同时启用了Drupal的本地认证和我们的外部认证,那么在插入操作下面,没有方式通过代码来区分用户究竟是通过本地认证的还是通过外部认证的;所以我们在这里聪明的使用了一个全局变量,来指示是我们的模块进行了认证。我们还对authmap表进行了查询,如下所示:
 
db_query("SELECT uid FROM {authmap} WHERE uid = %d AND module = '%s'", $account->uid, 'authdave');
 
    所有通过外部认证添加的用户,同时会在users表和authmap表中各有一行记录。然而,在这种情况下,由于在同一请求期间运行了认证和user钩子,所以在这里使用一个全局变量就可以很好的替代一个数据库查询了。
 
6-7. 外部用户登录/注册流程的详细

Drupal版本: