mosaxiv/cakephp-token-verify
Composer 安装命令:
composer require mosaxiv/cakephp-token-verify
包简介
Easily issue tokens that can be used for mail authentication.
README 文档
README
JWT for mail authentication.
Easily issue tokens(JWT) that can be used for mail authentication.
No need for token field in table.
one-time/url-safe/safety 👍
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
idfieldmodifiedfield
By using modified field, JWT can be used as one-time tokens.
JWT should be discarded when the table is updated.
Token\Model\Entity\TokenTrait
Used in entity.
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
$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
统计信息
- 总下载量: 4.57k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 9
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-11-26