Как изменить модель аутентификации API вместо использования модели пользователя по умолчанию в laravel - PullRequest
1 голос
/ 06 ноября 2019

У меня есть две модели клиент и пользователь. Для входа в систему я использовал модель пользователя в качестве супер администратора. Но я хочу, чтобы модель клиента использовалась для мобильного входа в систему через запрос API.

api.php

Route::group(['middleware' => 'auth:api'], function() {
    Route::resource('communities', 'communityAPIController');
    Route::resource('communities', 'communityAPIController');
    Route::resource('clients', 'ClientAPIController');
});

Config / auth.php

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'clients',
            'hash' => false,
        ],
    ],
'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],

         'clients' => [
             'driver' => 'eloquent',
             'model' => \App\Models\Client::class,
         ],
    ],

У меня естьмоя модель клиента, как это.

<?php

namespace App\Models;

use Eloquent as Model;

class Client extends Model
{

    public $table = 'clients';



    public $fillable = [
        'name',
        'phone',
        'house_no',
        'type',
        'is_approved',
        'community_id'
    ];

    /**
     * The attributes that should be casted to native types.
     *
     * @var array
     */
    protected $casts = [
        'id' => 'integer',
        'name' => 'string',
        'phone' => 'string',
        'house_no' => 'string',
        'type' => 'integer',
        'is_approved' => 'boolean',
        'community_id' => 'integer'
    ];



}

Я хочу использовать модель клиента вместо пользовательской модели для auth: api. Пожалуйста, помогите мне

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019
        try This 

         'guards' => [
                'web' => [
                    'driver' => 'session',
                    'provider' => 'users',
                ],

                'api-clients' => [
                    'driver' => 'token',
                    'provider' => 'clients',
                ],
            ],
'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
            'table' => 'users',
        ],

        'clients' => [
            'driver' => 'eloquent',
            'model' => App\Models\Client::class,
            'table' => 'clients',
        ],
    ],



    also make sure to mentions drivers to be used in controller's constructor like this 
    public function __construct()
        {


        auth()->shouldUse('api-clients');


        }
0 голосов
/ 06 ноября 2019

Попробуйте это



'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'clients',

        ],
    ],
'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],

         'clients' => [
             'driver' => 'eloquent',
             'model' => App\Models\Client::class,
             'table'=>'clients'
         ],
    ],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...