PHPackages                             nestboxphp/titmouse - 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. nestboxphp/titmouse

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

nestboxphp/titmouse
===================

User registration and session management with built-in password best-practices.

v0.0.3(2y ago)313AGPL-3.0PHP

Since May 12Pushed 1y agoCompare

[ Source](https://github.com/NestboxPHP/Titmouse)[ Packagist](https://packagist.org/packages/nestboxphp/titmouse)[ RSS](/packages/nestboxphp-titmouse/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (2)Versions (5)Used By (0)

Titmouse
========

[](#titmouse)

A user management interface that can register, login, and logout users while adhering to standard security practices for password handling.

Usage
-----

[](#usage)

Titmouse requries Nestbox to function

### Settings

[](#settings)

SettingDescriptionDefaultusersTableDefines the table name in which user data is stored.`users`userColumnDefines the column name which identifies the unique ID for each user.`username`nameLengthDefines the max number of characters in a user name.`64`mailColumnDefines the column name which stores the user email.`email`hashColumnDefines the column name which stores the hashword of a user.`hashword`sessionKeyDefines the `$_SESSION` key which is used to store and access user data.`user_data`Methods
-------

[](#methods)

### Register User

[](#register-user)

Registers a user and associates a new hash for logging in.

```
$tm->register_user(array $userData, string $password): bool
```

- `$userData`: an array containing key =&gt; value pairs where the key is any given column name in the user table and the value is the data to be stored in that column.
- `$password`: the plain-text password the user will use to log in with.

### Select User

[](#select-user)

Selects a user from the users table.

```
$tm->select_user(string $user): array
```

- `$user`: the string value of the user id being selected

### Login User

[](#login-user)

Logs in a user, and will load the user data into the `$_SESSION` variable. For additional security, it will automatically rehash a given password if a newer and/or better hashing algorithm has been identified and is available.

```
$tm->login_user(string $user, string $password, bool $loadToSession = true): array
```

- `$user`: string value of the username to be logged in
- `$password`: plain-text string value of the user's password
- `$loadToSession`: boolean determining if the user data will be loaded into the `$_SESSION` variable using the `sessionKey` setting's value

### Update User

[](#update-user)

Updates a user in the users data table with the given data.

```
$tm->update_user(string $user, array $userData): int
```

- `$user`: string value of the username to be updated in the user table
- `$userData`: an array of key =&gt; value pairs where the key is the name of the column where the value will be stored

### Load User Session

[](#load-user-session)

Load an array of data into the `$_SESSION` variable within the `sessionKey` key.

```
$tm->load_user_session(array $userData): void
```

- `$user`: array of whatever key =&gt; value pairs to be stored in the `$_SESSION` variable under the `sessionKey` key

### Logout User

[](#logout-user)

Clears out all `$_SESSION` user data under the `sessionKey` key while leaving any other remaining `$_SESSION` data intact

```
$tm->logout_user(): void
```

### Verify Email

[](#verify-email)

*work in progress*

```
$tm->verify_email(): bool
```

### Change Password

[](#change-password)

Changes the current password of `$user` to a new hash of `$newPassword`. Returns `true` if successful, otherwise false.

```
$tm->change_password(string $user, string $newPassword): bool
```

- `$user`: string value of the user for which the password is being updated
- `$newPassword`: plain-text string value of the new password to be used

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance27

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 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 ~6 days

Total

4

Last Release

716d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/759db8108809c477a3894c344aaf6a0c39645f3ed81c136f831bf68e1c6417ae?d=identicon)[supergnaw](/maintainers/supergnaw)

---

Top Contributors

[![supergnaw](https://avatars.githubusercontent.com/u/25543199?v=4)](https://github.com/supergnaw "supergnaw (12 commits)")

### Embed Badge

![Health badge](/badges/nestboxphp-titmouse/health.svg)

```
[![Health](https://phpackages.com/badges/nestboxphp-titmouse/health.svg)](https://phpackages.com/packages/nestboxphp-titmouse)
```

###  Alternatives

[bezhansalleh/filament-shield

Filament support for `spatie/laravel-permission`.

2.8k2.9M88](/packages/bezhansalleh-filament-shield)[gesdinet/jwt-refresh-token-bundle

Implements a refresh token system over Json Web Tokens in Symfony

70516.4M35](/packages/gesdinet-jwt-refresh-token-bundle)[illuminate/auth

The Illuminate Auth package.

9327.3M1.0k](/packages/illuminate-auth)[beatswitch/lock

A flexible, driver based Acl package for PHP 5.4+

870304.7k2](/packages/beatswitch-lock)[amocrm/amocrm-api-library

amoCRM API Client

182728.5k6](/packages/amocrm-amocrm-api-library)[vonage/jwt

A standalone package for creating JWTs for Vonage APIs

424.1M4](/packages/vonage-jwt)

PHPackages © 2026

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