codepunk/activatinator

Laravel 'Auth' 框架上添加用户激活功能的包

v1.3.7 2019-05-10 04:29 UTC

This package is auto-updated.

Last update: 2024-09-10 16:33:54 UTC


README

简介

Codepunk Activatinator 是 Laravel Auth 框架的扩展,要求用户通过电子邮件(或其他通知)激活账户后才能查看通常可见给认证用户的任何内容。

Activatinator 模拟 Laravel Auth "密码重置" 功能的逻辑和可扩展性。有关更多信息,请参阅 Laravel 的 认证重置密码 页面。Laravel 提供的许多密码重置自定义选项也由 Activatinator 提供。

这个名字是什么意思?

多音节的 "Activatinator" 是向 "菲恩斯与菲尔博" 动画系列中的反派海因茨·杜夫恩什密茨致敬。根据 菲恩斯与菲尔博维基,"杜夫恩什密茨的计划和发明,主要称为 'Inators',是海因茨·杜夫恩什密茨为控制并占领三州地区或其他地区而创造的计划和装置。"

由于编码往往感觉像是策划一个天才(有时是邪恶)的方案来征服世界,Codepunk 借用了杜夫恩什密茨的 "Inator" 风格命名。

安装

  1. 如果你还没有这样做

    1. 创建一个新的 Laravel 项目

      $ laravel new my_project
    2. 更新你的 .env 文件以指向有效的数据库和电子邮件客户端。

    3. 在你的新项目目录中,设置 Laravel 认证框架

      $ php artisan make:auth
  2. 需要 Codepunk Activatinator!

    • 通过 Composer

      $ composer require codepunk/activatinator
    • 手动

      在你的项目的 `composer.json` 文件的 require 部分中添加以下内容

      "codepunk/activatinator": "^1.2.1"

      (或任何最新的版本)

      然后,通过执行以下命令更新你的项目

      $ composer update
  3. 发布 Activatinator 包

    $ php artisan vendor:publish --force

    并选择 Codepunk ActivatinatorServiceProvider 选项。

  4. 更新数据库以进行必要的更改

    $ php artisan migrate:refresh
  5. 修改你的 App\User 模型

    • 添加以下 use 语句

      use Codepunk\Activatinator\Activable;
      use Codepunk\Activatinator\Contracts\Activable as ActivableContract;
    • 更新以下

      class User extends Authenticatable

      到这个

      class User extends Authenticatable
          implements ActivableContract
    • 更新以下

      use Notifiable;

      到这个

      use Notifiable, Activable;
    • 注意:如果你还使用 Laravel Passport 在应用程序中实现 OAuth,那么当用户尚未认证时,我们希望 oauth\token 端点失败。要实现此行为,将 Codepunk\Activatinator\Traits\ValidatesForPassport 特性添加到你的 App\User 模型(除 Passport 的 HasApiTokens 特性外,如 Laravel Passport 文档中所述)

      use Notifiable, Activable, HasApiTokens, ValidatesForPassport;
  6. 修改 app/Http/Controllers/Auth/ForgotPasswordController.php

    更新以下

    use Illuminate\Foundation\Auth\SendsPasswordResetEmails;

    到这个

    use Codepunk\Activatinator\SendsPasswordResetEmails;
  7. 修改 app/Http/Controllers/Auth/LoginController.php

    更新以下

    use Illuminate\Foundation\Auth\AuthenticatesUsers;

    到这个

    use Codepunk\Activatinator\AuthenticatesUsers;
  8. 修改 app/Http/Controllers/Auth/RegisterController.php

    更新以下

    use Illuminate\Foundation\Auth\RegistersUsers;

    到这个

    use Codepunk\Activatinator\RegistersUsers;
  9. 修改 resources/views/auth/login.blade.php

    找到这些行

    <div class="card-body">
        <form method="POST" action="{{ route('login') }}">

    并在其中添加以下行,使其看起来像这样

    <div class="card-body">
        @include('codepunk::activatinator-alerts')
        <form method="POST" action="{{ route('login') }}">

许可证

Codepunk Activatinator 是开源软件,许可协议为 MIT 许可证