https://github.com/pageon/expiringtoken
A cryptographically safe token with a build in customizable expiration date
https://github.com/pageon/expiringtoken
expiration forgot-password password-reset php php-7 token token-authentication tokens
Last synced: 3 months ago
JSON representation
A cryptographically safe token with a build in customizable expiration date
- Host: GitHub
- URL: https://github.com/pageon/expiringtoken
- Owner: pageon
- License: mit
- Created: 2017-02-21T21:03:13.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2021-06-28T05:51:27.000Z (about 4 years ago)
- Last Synced: 2025-04-09T20:03:32.826Z (3 months ago)
- Topics: expiration, forgot-password, password-reset, php, php-7, token, token-authentication, tokens
- Language: PHP
- Homepage: https://pageon.github.io/ExpiringToken/
- Size: 23.4 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Expiring Token
[](https://travis-ci.org/Pageon/ExpiringToken)
[](https://packagist.org/packages/pageon/expiring-token)
[](https://scrutinizer-ci.com/g/Pageon/ExpiringToken/?branch=master)
[](https://scrutinizer-ci.com/g/Pageon/ExpiringToken/?branch=master)The expiring token generates a random token of 128 characters with an expiration date.
The token uses base64 but the length is calculated so that it is url safe, so no padding with the = character.
The actual token is generated with [random_bytes](http://php.net/manual/en/function.random-bytes.php) with a length of `32`
## Installation
You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/):
composer require pageon/expiring-token
## Public api
### ExpiringToken::create
You can create a new token this way. It accepts a [DateInterval](http://php.net/manual/en/class.dateinterval.php) as optional parameter to set a different expiration date.
The default expiration date is 3 days.### ExpiringToken::fromString
Used to create an instance of the token from the string representation
### ExpiringToken::__toString
This turns the class instance into the string version of the token when the instance is used as or cast to a string.
### ExpiringToken::validateAgainst
This can be used to validate the current token against an other token
* When the tokens maths this method will return `true`
* An `InvalidToken` exception will be thrown if the tokens don't match
* An `TokenHasExpired` exception will be thrown if the token has expired### ExpiringToken::hasExpired
Returns a bool indicating if the current token has expired
### ExpiringToken::getExpiresOn
Can be used to get the expiration date of the token