【问题标题】:How do you use two database columns for the identity in ion auth (codeigniter library)?您如何使用两个数据库列作为 ion auth(codeigniter 库)中的身份?
【发布时间】:2012-10-31 05:54:28
【问题描述】:

Ion Auth 允许您选择一个身份,该身份基本上是用于登录的数据库列。我希望能够在 Ion Auth 中为我的身份选择两个数据库列,因为我希望用户使用他们的用户名或电子邮件登录,类似于 Twitter 的工作方式。我该怎么做呢?下面是我想要完成的示例代码:

<?php
$config['identity'] = 'email && username'; // A database column which is used to login with ion auth
?>

如您所见,我想要用户名和电子邮件,但我不知道如何在配置中添加两者。

【问题讨论】:

  • 我相信你不能不修改库的核心
  • 那么如何修改核心库才能做到这一点?

标签: php codeigniter authentication identity ion-auth


【解决方案1】:

ion_auth_model.php,在登录方法中,就在这段代码之后:

$query = $this->db->select($this->identity_column . ', username, email, id, password, active, last_login')
      ->where($this->identity_column, $identity)
      ->limit(1)
      ->order_by('id', 'desc')
      ->get($this->tables['users']);

添加以下代码:

if($query->num_rows() == 0){
    $query = $this->db->select($this->identity_column . ', username, email, id, password, active, last_login')
          ->where('username', $this->db->escape_str($identity))
          ->limit(1)
          ->get($this->tables['users']);
}

【讨论】:

    【解决方案2】:

    您必须修改库的核心才能实现这一点。如果您不知道该怎么做,请向 Ben Edmunds 寻求帮助,我相信他会知道的。

    【讨论】:

    • 如何联系他?
    猜你喜欢
    • 2013-01-14
    • 2014-03-17
    • 1970-01-01
    • 2011-07-18
    • 2013-02-15
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多