Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 1 month 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 7 years ago)
- Default Branch: master
- Last Pushed: 2021-06-28T05:51:27.000Z (over 3 years ago)
- Last Synced: 2024-10-12T12:21:48.855Z (about 1 month 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: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Expiring Token
[![Build Status](https://travis-ci.org/Pageon/ExpiringToken.svg?branch=master)](https://travis-ci.org/Pageon/ExpiringToken)
[![License](https://poser.pugx.org/pageon/expiring-token/license.svg)](https://packagist.org/packages/pageon/expiring-token)
[![Code Coverage](https://scrutinizer-ci.com/g/Pageon/ExpiringToken/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/Pageon/ExpiringToken/?branch=master)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/Pageon/ExpiringToken/badges/quality-score.png?b=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