cmsrs / laracms
cmsRS软件包
1.0.6
2022-10-21 17:24 UTC
Requires
- guzzlehttp/guzzle: ^7.0.1
- intervention/image: ^2.7
- laravel/ui: ^4.0
- php-open-source-saver/jwt-auth: ^2.0
Requires (Dev)
- nunomaduro/collision: ^6.2
- orchestra/testbench: ^7.6
- phpunit/phpunit: ^9.5
README
composer require cmsrs/laracms
php artisan vendor:publish --provider="Cmsrs\Laracms\Providers\LaracmsProvider" --force
php artisan migrate
php artisan db:seed
从文件:./routes/web.php中删除行
//Route::get('/', function () { // return view('welcome'); //});
配置jwtAuth(简要来说)
php artisan vendor:publish --provider="PHPOpenSourceSaver\JWTAuth\Providers\LaravelServiceProvider"
php artisan jwt:secret
在config/auth.php中更改为
'defaults' => [ 'guard' => 'api', 'passwords' => 'users', ], 'guards' => [ 'api' => [ 'driver' => 'jwt', //'token', 'provider' => 'users', 'hash' => false ], 'web' => [ 'driver' => 'session', 'provider' => 'users', ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\Models\User::class, ], ],
在app/Models中添加User.php文件
<?php namespace App\Models; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Auth; use PHPOpenSourceSaver\JWTAuth\Contracts\JWTSubject; class User extends Authenticatable implements JWTSubject { use Notifiable; public static $role = [ 'admin' => 'admin', 'client' => 'client' ]; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password' , 'role' ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', ]; /** * Get the identifier that will be stored in the subject claim of the JWT. * * @return mixed */ public function getJWTIdentifier() { return $this->getKey(); } /** * Return a key value array, containing any custom claims to be added to the JWT. * * @return array */ public function getJWTCustomClaims() { return []; } public function setPasswordAttribute($password) { if (!empty($password)) { $this->attributes['password'] = Hash::make($password); } } static public function getTokenForClient() { $user = Auth::user(); if( empty($user) ){ throw new \Exception("User not auth"); } return $user->getTokenClient(); } public function getTokenClient() { $appKey = env('APP_KEY'); if( empty($appKey) ){ throw new \Exception("empty APP_KEY in config file"); } return sha1($this->email."_".$this->id."_".$appKey); } public function checkClientByToken($token) { $expectedToken = $this->getTokenClient(); if($expectedToken == $token){ return true; } return false; } static public function checkApiClientByToken($token) { $user = Auth::user(); if( empty($user) ){ throw new \Exception("User not auth - for check"); } if( !$user->checkClientByToken($token) ){ throw new \Exception("User not valid - check"); } return true; } }
php artisan serve
管理
-
访问网站 http://127.0.0.1:8000/admin/
登录为
用户名: adm@cmsrs.pl
密码: cmsrs123
-
创建主页(页面类型:main_page)
-
添加菜单
-
添加页面