touhedul/users

v6.0 2022-08-04 09:44 UTC

This package is auto-updated.

Last update: 2024-09-04 14:14:56 UTC


README

CRUD包。

需要properos/properos-base包 如果想要使用社交账户进行认证,则需要laravel/socialite包 配置 => https://laravel.net.cn/docs/5.6/socialite

在config/services.php中添加

    'facebook' => [
        'client_id' => env('FACEBOOK_CLIENT_ID', '147107342556627'),
        'client_secret' => env('FACEBOOK_CLIENT_SECRET', 'eda29465e6a4a98b5f89a1c2a3829f14'),
        'redirect' => env('FACEBOOK_CALLBACK','http://properos.com/auth/facebook/callback')
    ],
    
    'google' => [
        'client_id' => env('GOOGLE_CLIENT_ID', '200207622942-nadc5euejp1fb7jj1m13fdhu30ot4icc.apps.googleusercontent.com'),
        'client_secret' => env('GOGOLE_CLIENT_SECRET', 'uhIvqdMkWVD43Lw9EvvsMfQf'),
        'redirect' => env('GOOGLE_CALLBACK','http://properos.com/auth/google/callback')
        
    ]

在config/app.php中添加

    Laravel\Socialite\SocialiteServiceProvider::class,

修改config/database.php

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8',
        'collation' => 'utf8_general_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => 'Innodb',
    ],

需要spatie/laravel-permission包 重要提示:如果想要使用restrictable_type和restrictable_id,必须使用"spatie/laravel-permission": "^2.2.0"并添加以下代码在安装前 需要使用properos-condo包中的restrictable_type和restrictable_id,并且必须取消以下代码的注释(CreateUserComponent.vue和UserController.php -> editUser())

在composer.json中添加仓库

    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/IlCallo/laravel-permission"
        }
    ],

如果没有,可以使用以下代码安装spatie composer require spatie/laravel-permission

配置 => https://docs.spatie.be/laravel-permission/v3/installation-laravel/

在app/Http/Kernel.php中注册中间件 如果使用restrictable

    'role' => \Properos\Users\Middleware\RoleMiddleware::class,

如果不使用,则需要注册

    'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,
    'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class

需要moment.js npm install moment

添加到config/app.php

    'providers' => [
        '...',
        Properos\Users\UsersServiceProvider::class,
        '...'
    ]

在composer.json中注册提供者

    "autoload": {
    "...": {},
        "psr-4": {
            "App\\": "app/",
            "Properos\\Users\\": "packages/properos/properos-users-advanced/src"
        }
    },

运行 composer dump php artisan vendor:publish 选择 -> Properos\Users\UsersServiceProvider

创建env.js

添加到webpack.mix.js .js('resources/assets/js/be/modules/users/js/user.js', 'public/be/js/modules/user.js')

如果不存在,则添加到resources/assets/bootstrap.js

    import Helpers from './misc/helpers'

    window.moment = require('moment')
    window.Vue = require('vue');
    window.Helpers = Helpers;

config/properos_users.php文件 设置路由的中间件。

如何使用模型 \Properos\Users\Models\Model-Name

修改config/auth.php

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => \Properos\Users\Models\User::class,
        ],
    ],

运行迁移 php artisan migrate create users table user_addresses table user_profiles table modify roles table

在database/seeds/DatabaseSeeder.php中添加种子

    Set all roles on RolesPermissionsTableSeeder and users on UsersTableSeeder
    $this->call(RolesPermissionsTableSeeder::class);
    $this->call(UsersTableSeeder::class);

运行composer dump-autoload php artisan db:seed npm run watch

使用API认证 安装laravel/passport包 => https://laravel.net.cn/docs/5.6/passport

```php
    Descomment 
    use Laravel\Passport\HasApiTokens;
    use HasApiTokens;
    in \Models\Users.php
```

添加到routes/web.php

    Route::get('/admin/dashboard', function(){
        return view('be.index');
    })->middleware(['auth', 'role:admin']);