承接 tpenaranda/aiditokens 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

tpenaranda/aiditokens

Composer 安装命令:

composer require tpenaranda/aiditokens

包简介

Use custom tokens instead of IDs on Laravel models.

README 文档

README

Latest Stable Version Total Downloads License

A Laravel package to reference Models by using custom string tokens instead of IDs.

Use cases

  • You want to hide ID information on your endpoints. /api/user/32 ends as /api/user/5cb0b0dddf8ae37a6e8066d4ffd838d91c94bdc7.
  • You need to create temporary references to your models. For instance, a link for resetting a password that will expire in two hours reset/password/user/3f6e660c376c9fcaeaddeb50b0893d73e772100f.

Installation

Install package using Composer.

$ composer require tpenaranda/aiditokens

Run migrations.

$ php artisan migrate

Usage

  • Include Tokens trait on desired Laravel model.
class User extends Model
{
    use TPenaranda\Aiditokens\Traits\Tokens;
  • Get (create if necessary) a token:
>>> $userModel->getToken();
=> "5cb0b0dddf8ae37a6e8066d4ffd838d91c94bdc7"
>>>


>>> $userModel->getToken($expireInHours = 2);
=> "efbbc5efa8e0838f58aa86f2f20a468af8262a43"
>>>
  • Retrieve a model by token:
$user = User::firstByToken('5cb0b0dddf8ae37a6e8066d4ffd838d91c94bdc7');
=> App\User {#3214
     id: 53,
     first_name: "John",
     last_name: "Doe",
     created_at: "2019-11-15 07:22:59",
     updated_at: "2019-11-15 07:23:04",
  • Custom token generation
class User extends Model
{
    use TPenaranda\Aiditokens\Traits\Tokens;

    public function generateToken(): string
    {
        return str_random(); // Your custom logic goes here.
    }

Advanced usage

  • Bind on RouteServiceProvider for route model explicit binding
class RouteServiceProvider extends ServiceProvider
{
    public function boot()
    {
        Route::pattern('userToken', '^.{40}$'); // Watch out this regex if you're using custom tokens.

        Route::bind('userToken', function ($value) {
            return User::firstByToken($value) ?? abort(404);
        });
  • Route file
Route::get('users/{userToken}', 'UserController@get');

Happy coding!

统计信息

  • 总下载量: 22
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-11-17

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固