squashjedi / basecamp
:package_description
0.0.18
2017-07-15 08:27 UTC
Requires
- php: ~5.6|~7.0
- illuminate/support: ~5.1
- laravel/socialite: ^3.0
Requires (Dev)
- phpunit/phpunit: ~4.0||~5.0||~6.0
- squizlabs/php_codesniffer: ^2.3
README
关于 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)。有关更多信息,请参阅 许可证文件