squashjedi/basecamp

:package_description

0.0.18 2017-07-15 08:27 UTC

README

Total Downloads Latest Stable Version License

关于 Basecamp

Basecamp 为您的 Laravel 项目提供了良好的起点,包括以下功能:

  • 它具有流畅的接口,使用 Laravel Socialite 包进行 Facebook OAuth 认证。
  • 内置了用于用户认证、密码重置、重新发送验证码和欢迎邮件的电子邮件。
  • 登录用户可以更新其设置的区域。
  • 一个用于 CRUD 用户的主管员控制面板。
  • 一个用户 API。

安装

通过 Composer

composer require squashjedi/basecamp

配置

在安装 Basecamp 库之后,请在您的 config/app.php 配置文件中注册 Squashjedi\Basecamp\BasecampServiceProvider::class

'providers' => [
    // Other service providers...

    Squashjedi\Basecamp\BasecampServiceProvider::class,
],

您还需要添加您应用程序使用的 OAuth 服务的凭据。这些凭据应放在您的 config/services.php 配置文件中,并使用密钥 facebook。例如

'facebook' => [
    'client_id' => 'your-facebook-app-id',
    'client_secret' => 'your-facebook-app-secret',
    'redirect' => 'http://your-callback-url',
],

运行以下命令

php artisan vendor:publish --tag=basecamp
php artisan migrate
php artisan db:seed --class="Squashjedi\\Basecamp\\DatabaseSeeder"
npm install
npm install font-awesome

resources/assets/js/app.js 中添加这些 Vue 组件

Vue.component('basecamp-pagination',
    require('./components/basecamp/Pagination.vue'));

Vue.component('basecamp-notify',
    require('./components/basecamp/Notify.vue'));

Vue.component('basecamp-modal-delete',
    require('./components/basecamp/ModalDelete.vue'));

Vue.component('basecamp-admin-users',
    require('./components/basecamp/admin/users/Index.vue'));

Vue.component('basecamp-admin-users-fields',
    require('./components/basecamp/admin/users/Fields.vue'));

Vue.component('basecamp-admin-users-create',
    require('./components/basecamp/admin/users/Create.vue'));

Vue.component('basecamp-admin-users-edit',
    require('./components/basecamp/admin/users/Edit.vue'));

Vue.component('basecamp-user-settings-account',
    require('./components/basecamp/user/settings/account/Account.vue'));

Vue.component('basecamp-user-settings-account-deactivate',
    require('./components/basecamp/user/settings/account/Deactivate.vue'));

Vue.component('basecamp-user-settings-account-deactivate-modal',
    require('./components/basecamp/user/settings/account/DeactivateModal.vue'));

Vue.component('basecamp-user-settings-password',
    require('./components/basecamp/user/settings/password/Password.vue'));

Vue.component('basecamp-settings-password-forgot',
    require('./components/basecamp/user/settings/password/Forgot.vue'));

Vue.component('basecamp-user-settings-password-reset',
    require('./components/basecamp/user/settings/password/Reset.vue'));

resources/assets/sass/app.scss 的底部添加这些

// Font Awesome
@import "node_modules/font-awesome/scss/font-awesome.scss";

// Basecamp variables
@import "basecamp/variables";

// Basecamp extras
@import "basecamp/extras";

运行以下命令

npm run dev

删除 resources/views/welcome.blade.php

删除 routes/web.php 中的所有路由

app/User.php 替换为

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Squashjedi\Basecamp\App\Notifications\ResetPasswordNotification;
use Squashjedi\Basecamp\App\Social;
use Squashjedi\Basecamp\App\Role;
use Squashjedi\Basecamp\App\PasswordReset;
use Illuminate\Database\Eloquent\SoftDeletes;

class User extends Authenticatable
{
    use Notifiable, SoftDeletes;

    /**
     * The attributes that should be mutated to dates.
     *
     * @var array
     */
    protected $dates = ['deleted_at'];

    /**
     * Send the password reset notification.
     *
     * @param  string  $token
     * @return void
     */
    public function sendPasswordResetNotification($token)
    {
        $this->notify(new ResetPasswordNotification($token));
    }

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'verified', 'name', 'email', 'password', 'verify_token', 'deleted_at'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    /**
     * Get the social networks for the user.
     */
    public function social()
    {
        return $this->hasMany(Social::class);
    }

    /**
     * Get the roles for the user.
     */
    public function roles()
    {
        return $this->hasMany(Role::class);
    }

    /**
     * Get the password code for the user.
     */
    public function passwordReset()
    {
        return $this->hasOne(PasswordReset::class, 'email', 'email');
    }
}

resources/lang/en/validation.php 中添加以下内容

return [
    // Other error messages...

    'password_match'        => 'This doesn\'t match your current password',
];

安装 Laravel Passport https://packagist.org.cn/packages/laravel/passport

将此中间件添加到 app/Http/Kernel

protected $middlewareGroups = [
    'web' => [
        // Other middleware classes...

        \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
    ],
];

用法

数据库种子创建 1000 个用户。

主管员的登录信息是

Email: me@example.com
Password: 123456

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件