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 yesterday

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 54% 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

1710d 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

[tymon/jwt-auth

JSON Web Token Authentication for Laravel and Lumen

11.5k49.1M350](/packages/tymon-jwt-auth)[league/oauth2-server

A lightweight and powerful OAuth 2.0 authorization and resource server library with support for all the core specification grants. This library will allow you to secure your API with OAuth and allow your applications users to approve apps that want to access their data from your API.

6.6k136.0M248](/packages/league-oauth2-server)[simplesamlphp/simplesamlphp

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

1.1k12.4M193](/packages/simplesamlphp-simplesamlphp)[php-open-source-saver/jwt-auth

JSON Web Token Authentication for Laravel and Lumen

8359.8M53](/packages/php-open-source-saver-jwt-auth)[kreait/firebase-tokens

A library to work with Firebase tokens

24040.8M14](/packages/kreait-firebase-tokens)[scheb/2fa

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

578630.7k1](/packages/scheb-2fa)

PHPackages © 2026

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