Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema con i Guard in Lumen

  1. #1

    Problema con i Guard in Lumen

    ce l'ho messa davvero tutta per non chiedervi aiuto anche su questa cosa, ma dopo ore non ce la faccio più.

    devo aggiungere un ruolo ad un utente:
    Codice PHP:
    class DatabaseSeeder extends Seeder {

        
    /**
         * Run the database seeds.
         *
         * @return void
         */
        
    public function run() {
            
    app()['cache']->forget('spatie.permission.cache');

            
    $user User::find(1);
            
    $user->assignRole(Role::findByName('admin'));
        }


    la risposta che ottengo è questa:
    codice:
    $ php artisan db:seed
    
    In GuardDoesNotMatch.php line 12:
                                                                          
      The given role or permission should use guard `` instead of `api`.
    questo il mio config/auth.php:
    Codice PHP:

    return [
        
    'defaults' => [
            
    'guard' => env('AUTH_GUARD''api'),
        ],
        
    'guards' => [
            
    'api' => ['driver' => 'api'],
        ],
        
    'providers' => [
        
    //
        
    ],
        
    'passwords' => [
        
    //
        
    ],
    ]; 
    non ho capito se devo aggiungere un campo apposito sulla tabella user, o se c'è qualche altra configuazione da fare.
    suggerimenti??

  2. #2
    allora, ho modificato il mio auth.php:
    Codice PHP:
    return [
        
    'defaults' => [
            
    'guard' => env('AUTH_GUARD''api'),
        ],
        
    'guards' => [
            
    'api' => [
                
    'driver' => 'api',
                
    'provider' => 'users'
            
    ],
        ],
        
    'providers' => [
            
    'users' => [
                
    'driver' => 'eloquent',
                
    'model' => App\User::class,
            ],
        ],
        
    'passwords' => [
        ],
    ]; 
    ha funzionato, e mi ha creato un record in model_has_role, mettendo come model_type il valore App\User.
    se devo essere sincero non so se è giusto o meno.
    mi suona strano che venga salvato il model con lo \.
    qualcuno ha riscontrato lo stesso comportamento??

  3. #3
    penso di aver capito.
    il terzo campo della tabella, model_id, indica l'id dell'utente.
    da li capisco se quell'utente ha quel ruolo.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    504
    Tu hai aggiunto il provider per l'autenticazione, in pratica hai detto a lumen che per autenticare utilizzi gli utenti e li richiami tramite eloquent. Questo su laravel è l'impostazione standard, non so su lumen, ma dovrebbe essere la stessa cosa, quindi tutto ok.

    Tu però nella guard "api" hai impostato come driver "api", che non credo vada bene. Quel driver di default non c'è e non penso tu lo abbia creato/installato. Il valore di default è "token".

    Infatti sulla tua api ti autenticherai tramite token. (In realtà ci sono altri metodi/driver, ma facciamo una cosa per volta).

  5. #5
    ciao!

    in verità il driver api l'ho trovato così, non l'ho impostato io.
    provo a mettere token, che in teoria mi sembra più corretto.
    in fondo come hai detto anche te, l'autenticazione la faccio tramite token!

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    504
    No sono andato a controllare, su lumen il default è api.
    E' corretto, scusa ma non conosco lumen, pensavo fosse come laravel.
    Ultima modifica di M4V1; 09-11-2018 a 18:01

  7. #7
    ok ho lasciato com'è allora.

    vado un pò avanti sperando di risolvere tutto.
    sennò...al prossimo problema

    grazie!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2018 vBulletin Solutions, Inc. All rights reserved.