I have been creating a project where I am extending the Auth module. I came across a possible problem you may (or may not) want to amend - thought I would post it up incase!
The username_exists has a hard coded reference to the table name in it, which karks if you extend the Model, currently the function is as below;
public function username_exists($name)
{
return (bool) self::$db->where('username', $name)->count_records('users');
}
This could be amended to;
public function username_exists($name)
{
return (bool) self::$db->where('username', $name)->count_records(inflector::plural($this->class));
}