PHPackages                             hahadu/think-userlogin - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. hahadu/think-userlogin

ActiveThink-extend[Authentication &amp; Authorization](/categories/authentication)

hahadu/think-userlogin
======================

thinkphp6用户登录/注册模块

v4.0.0(4y ago)9912[1 issues](https://github.com/hahadu/think-userlogin/issues)1Apache-2.0PHPPHP &gt;=7.1

Since Oct 7Pushed 4y ago2 watchersCompare

[ Source](https://github.com/hahadu/think-userlogin)[ Packagist](https://packagist.org/packages/hahadu/think-userlogin)[ RSS](/packages/hahadu-think-userlogin/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (3)Dependencies (6)Versions (16)Used By (1)

think-userlogin
===============

[](#think-userlogin)

thinkphp用户登录模块

> - 用户登录
> - 用户注册
> - 验证邮箱注册
> - 验证用户登录
> - 手机短信注册
> - 登录鉴权方式：session/cookie 或JWT 方式鉴权
> - 支持登陆后跳转到登陆前请求页面

### 安装：

[](#安装)

```
composer require hahadu/think-userlogin

```

#### 默认安装依赖项 ：

[](#默认安装依赖项-)

> - thinkphp验证码模块 topthink/think-captcha
> - 发送验证邮件 phpmailer/phpmailer
> - 发送验证短信 hahadu/sms
> - 返码状态 hahadu/think-jump-class

#### 创建用户数据表(可选)

[](#创建用户数据表可选)

##### 1.配置config/console.php

[](#1配置configconsolephp)

```
return [
    // 指令定义
    'commands' => [
        'createUser' => \Hahadu\ThinkUserLogin\Command\CreateUser::class,
    ],
```

##### 2.命令行指令说明

[](#2命令行指令说明)

```
   php think createUser
   or
   php think createUser [ModelName] --username=username --password=password
```

- ModelName 用户表的名称 默认为users 如果在数据库配置文件中设置了表前缀则会自动加入表前缀
- --username 用户名，默认为admin
- --password 用户密码 默认随机生成

```
   php think createUser users --username=admin --password=123456
```

- 以上指令会创建一个名为user的数据表，并创建一条用户名为admin 密码为123456的用户数据
- 如果用户存在则更新用户密码

项目做了用户名、密码、验证码的基本验证和登录成功后的session创建

### 使用：

[](#使用)

- 在应用创建一个登录控制器
- 该控制器继承Hahadu\\ThinkUserLogin\\controller\\BaseLoginController控制器

```
//用户登录模块控制器Login.php
namespace app\user\controller;
use Hahadu\ThinkUserLogin\controller\BaseLoginController;
use think\facade\View;

class Login extends BaseLoginController
{
    public function index() //用户登录页面
    {
        return view();
    }
    public function login()
    {
        $result = parent::login();
        if($result['code'] == 100003){
            return '登录成功';
        }else{
            return '登录失败';
        }
    }
    public function logout()
    {
        $result = parent::logout();
        if($result['code'] == 100004){
            return '退出登录成功';
        }else{
            return '退出登录失败';
        }
    }
}
```

### 配置

[](#配置)

##### 用户表配置

[](#用户表配置)

- 在config/login.php配置登录信息

```
return [
    'user_model'=> "\app\model\Users", //用户数据表模型路径
    'login_url' =>'/admin/login', //用户需要登录时的跳转登录页面 /模块/控制器/方法
    'JWT_login' =>true, //是否开启JWT鉴权 true 开启 false关闭
    'token_name' => 'token',//token表单字段名
    'JWT'=>[ //配置jwt 开启jwt有效
        'nbf'=> 1, //令牌生效开始时间 *距离令牌创建的时间
        'exp'=> 3600, //令牌过期时间 *距离令牌创建的时间
        'iss'=> request()->host(), //iss
        'aud'=> request()->host(), //aud

    ]

];
```

```
//用户数据表说明
/*
用户表字段：
用户名：username //必须
密码 ： password //必须
头像 ： avatar  //必须
用户邮箱： email //可选 需要邮箱注册登录的场景可用
用户手机： phone //可选 需要短信注册登录的场景可用
头像为图片链接地址
*/
```

##### 页面跳转配置

[](#页面跳转配置)

```
//页面跳转遵循hahadu/think-jump-class 的跳转方式
//
return [
    //是否开启ajax返回 true 开启/ false关闭
    //开启JWT鉴权时，ajax必须设置为true
    'ajax'=>true,
    'ajax_type'=> 'json', //支持json|jsonp|xml3种类型、开启ajax有效
    //自定义跳转模板文件路径
    'dispatch_tpl' => '' ,
];
```

##### 邮箱验证注册

[](#邮箱验证注册)

```
    public function register(){
        $result = parent::email_register();
        if($result['code']==100002){
         return '注册成功';
        }else
            return  '注册失败';
        }
    }
//在email_tpl方法中设置邮箱模板内容，
//邮箱模板是一个数组，必须包含'title'和'content'
//或者复制下面的方法到您的控制器中，按需修改即可
    protected function email_tpl(){
        return ['title'=>'欢迎注册，请查收验证码','content'=>'您好，感谢您的注册，您的验证码是: %s'];
    }
```

##### 短信验证注册

[](#短信验证注册)

短信使用 hahadu/sms 模块 近期短信模块重大升级，升级本模块后请务必修改短信模块的配置项！详情参考：

```
    public function register(){
        $result = parent::sms_register();
        if($result['code']==100002){
         return '注册成功';
        }else
            return  '注册失败';
        }
    }

```

##### 修改密码

[](#修改密码)

```
  public function repassword(Request $request){
     return $this->re_password($request);
  }
```

获取邮箱或者短信验证码也是非常简单

```
//获取注册验证码直接在模板文件中post请求到当前控制器中的get_email_code方法即可
 $.post("{:url('get_email_code')}", {email: $email}, // 获取邮箱验证码;
 $.post("{:url('get_sms_code')}", {phone: $phone}, // 获取短信验证码;
```

如需自己定义验证码，只需按照tp6的验证码文档操作即可

```
    public function verify()
    {
        /*
         * 此处写你的验证码方法
         */
        return Captcha::create();
    }
```

关于返回状态码：

- 100003 登录成功
- 100004 退出登录成功
- 420103 登录失败
- 420104 退出登录失败
- 420107 邮箱验证失败
- 420109 验证码必填
- 420108 用户名必填
- 420110 密码必填
- 420111 重复密码错误

    交流qq群 \[(点击链接加入群聊【thinkphp6开发交流群】：839695142\][https://jq.qq.com/?\_wv=1027&amp;k=FxgUKLhJ](https://jq.qq.com/?_wv=1027&k=FxgUKLhJ))

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~23 days

Recently: every ~56 days

Total

15

Last Release

1761d ago

Major Versions

v1.0.0 → v2.1.32020-11-10

v2.1.3 → v3.0.02020-11-10

v3.5.0 → v4.0.02021-09-05

### Community

Maintainers

![](https://www.gravatar.com/avatar/8803f4b62a77e88a2b14f57d7d68a5bacaa69fd8c58b17101e89044fab8abb27?d=identicon)[hahadu](/maintainers/hahadu)

---

Top Contributors

[![hahadu](https://avatars.githubusercontent.com/u/38153732?v=4)](https://github.com/hahadu "hahadu (45 commits)")

### Embed Badge

![Health badge](/badges/hahadu-think-userlogin/health.svg)

```
[![Health](https://phpackages.com/badges/hahadu-think-userlogin/health.svg)](https://phpackages.com/packages/hahadu-think-userlogin)
```

###  Alternatives

[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k38.9k](/packages/matomo-matomo)[simplesamlphp/simplesamlphp

A PHP implementation of a SAML 2.0 service provider and identity provider.

1.1k13.0M218](/packages/simplesamlphp-simplesamlphp)[php-open-source-saver/jwt-auth

JSON Web Token Authentication for Laravel and Lumen

84611.1M63](/packages/php-open-source-saver-jwt-auth)[scheb/2fa

Two-factor authentication for Symfony applications (please use scheb/2fa-bundle to install)

585684.2k1](/packages/scheb-2fa)[jeremy379/laravel-openid-connect

OpenID Connect support to the PHP League's OAuth2 Server. Compatible with Laravel Passport.

59437.0k9](/packages/jeremy379-laravel-openid-connect)[scheb/2fa-trusted-device

Extends scheb/2fa-bundle with trusted devices support

365.8M34](/packages/scheb-2fa-trusted-device)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
