2017 © Pedro Peláez
 

cakephp-plugin cakephp-token-verify

Easily issue tokens that can be used for mail authentication.

image

mosaxiv/cakephp-token-verify

Easily issue tokens that can be used for mail authentication.

  • Thursday, January 25, 2018
  • by mosaxiv
  • Repository
  • 1 Watchers
  • 8 Stars
  • 156 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 90 % Grown

The README.md

Token Verify plugin for CakePHP3

MIT License Build Status, (*1)

JWT for mail authentication., (*2)

Easily issue tokens(JWT) that can be used for mail authentication.
No need for token field in table.
one-time/url-safe/safety :+1:, (*3)

Requirements

  • PHP 7.0+
  • CakePHP 3.0.0+

Installation

composer require mosaxiv/cakephp-token-verify

Example

reset password

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY, # Required
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL,
    password VARCHAR(255) NOT NULL,
    created DATETIME,
    modified DATETIME # Required
);
// app/src/Model/Entity/User.php

use Token\Model\Entity\TokenTrait;

class User extends Entity
{
    use TokenTrait;
}

// app/src/Controller/UsersController.php

use Cake\Routing\Router;
use Token\Util\Token;

class UsersController extends AppController
{

    public function forgotPassword()
    {
        if ($this->request->is('post')) {
            $email = $this->request->getData('email');
            $user = $this->Users->findByEmail($email)->first();
            if ($user) {
                $token = $user->tokenGenerate();
                $url = Router::url(['controller' => 'User', 'action' => 'resetPassword', $token], true);
                // send email
            }
        }
    }

    public function resetPassword($token)
    {
        $user = $this->Users->get(Token::getId($token));
        if (!$user->tokenVerify($token)) {
            throw new \Cake\Network\Exception\NotFoundException();
        }

        if ($this->request->is('post')) {
            $user = $this->Users->patchEntity($user, $this->request->getData());
            if ($this->Users->save($user)) {
                // success
            } else {
                // error
            }
        }
    }
}

Usage

Required database field

  • id field
  • modified field

By using modified field, JWT can be used as one-time tokens.
JWT should be discarded when the table is updated., (*4)

Token\Model\Entity\TokenTrait

Used in entity., (*5)

tokenGenerate($minits = 10)

// token generate(default token expiration in 10 minits)
$token = $entity->tokenGenerate();

// token generate(token expiration in 60 minits)
$token = $entity->tokenGenerate(60);

tokenVerify($token)

$user->tokenVerify($token) // true or false

setTokenData($name, $value)

※ It does not encrypt the set data, (*6)

$user->setTokenData('test', 'testdata')

Token\Util\Token

Token::getId($token)

Token::getId($token) // id or false

Token::getData($token, $name)

Token::getData($token, 'test') // data or false

The Versions

25/01 2018

dev-master

9999999-dev https://github.com/mosaxiv/cakephp-token-verify

Easily issue tokens that can be used for mail authentication.

  Sources   Download

MIT

The Requires

 

The Development Requires

plugin cakephp jwt token

05/12 2017

1.0.0

1.0.0.0 https://github.com/mosaxiv/cakephp-token-verify

Easily issue tokens that can be used for mail authentication.

  Sources   Download

MIT

The Requires

 

The Development Requires

plugin cakephp jwt token

03/12 2017

0.0.3

0.0.3.0 https://github.com/mosaxiv/cakephp-token-verify

Easily issue tokens that can be used for mail authentication.

  Sources   Download

MIT

The Requires

 

The Development Requires

plugin cakephp jwt token

28/11 2017

0.0.2

0.0.2.0 https://github.com/mosaxiv/cakephp-token-verify

Easily issue tokens that can be used for mail authentication.

  Sources   Download

MIT

The Requires

 

The Development Requires

plugin cakephp jwt token

26/11 2017

0.0.1

0.0.1.0

Token Verify plugin for CakePHP

  Sources   Download

MIT

The Requires

 

The Development Requires

plugin cakephp jwt token