代码之家  ›  专栏  ›  技术社区  ›  Yozz

FuelPHP SimpleAuth自定义列名?

  •  0
  • Yozz  · 技术社区  · 10 年前

    使用SimpleAuth包,我正在开发登录功能。 默认情况下,用户表应该有一列“username”。 但我的系统有一个用户表,其中包含“login_id”而不是“username”。

    Fuel\Core\Database_Exception [ 1054 ]:
    Unknown column 'username' in 'where clause' 
    [ SELECT * FROM `m_user` WHERE (`username` = 'admin' OR `email` = 'admin') 
    AND `password` = 'mIIMXQgANGZ21XHRTpI2Krpla9yx3UwEw0PCNfjAN4I=' ]
    

    我无法理解它是如何处理自定义域名的。 我尝试在APPPATH/config/simpleauth.php上使用“'username_post_key'=>'login_id'”进行配置,但不起作用。。

    提前感谢。

    ### APPPATH/config/auth.php ###
    return array(
        'driver' => 'SimpleAuth',
        'verify_multiple_logins' => false,
        'salt' => 'techtech',
        'iterations' => 10000,
    );
    
    ### APPPATH/config/simpleauth.php ###
    <?php
        return array(
    
        'db_connection' => null,
    
        'table_name' => 'm_user',
    
        'table_columns' => array('*'),
    
        'guest_login' => true,
    
        'multiple_logins' => false,
    
        'remember_me' => array(
    
          'enabled' => false,
    
          'cookie_name' => 'rmcookie',
    
          'expiration' => 86400 * 31,
        ),
    
        'groups' => array(
        ),
    
        'roles' => array(
        ),
    
        'login_hash_salt' => 'tech_login',
    
        'username_post_key' => 'login_id',
    
        'password_post_key' => 'password',
        );
    
    
    ### user table ###
    +----------------+------------------+------+-----+---------+----------------+
    | Field          | Type             | Null | Key | Default | Extra          |
    +----------------+------------------+------+-----+---------+----------------+
    | id             | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
    | login_id       | varchar(100)     | NO   |     | NULL    |                |
    | first_name     | varchar(20)      | NO   |     | NULL    |                |
    | last_name      | varchar(20)      | NO   |     | NULL    |                |
    | password       | varchar(255)     | NO   |     | NULL    |                |
    | last_login_at  | timestamp        | YES  |     | NULL    |                |
    | created_at     | timestamp        | YES  |     | NULL    |                |
    | updated_at     | timestamp        | YES  |     | NULL    |                |
    | deleted_at     | timestamp        | YES  |     | NULL    |                |
    +----------------+------------------+------+-----+---------+----------------+
    
    1 回复  |  直到 10 年前
        1
  •  0
  •   kenjis    10 年前

    您无法配置它,因为 username_post_key 是POST字段名,而不是表列名。没有表列名的配置。

    您必须自定义SimpleAuth,或创建自己的驱动程序。