Bonsoir! J'ai deux tables à savoir la table client et la table compte, un client peut avoir plusieurs comptes mais un compte n'appartient qu'à un client donc dans la table compte il y'a la clé étrangère de le table client. J'ai alors créé une page d'authentification où l'authentification se fait en entrant le numero de compte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
@extends('layouts.appClient')
 
@section('content')
<div class="container" style="margin-top: 10%">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">{{ __('CONNEXION') }}</div>
 
                <div class="card-body">
                    <form method="POST" action="{{ url('loginClient') }}">
                        @csrf
 
                        <div class="form-group row">
                            <label for="numeroCompte" class="col-md-4 col-form-label text-md-right">{{ __('N° Compte') }}</label>
 
                            <div class="col-md-6">
                                <input id="numeroCompte" type="texte" class="form-control @error('numeroCompte') is-invalid @enderror" name="numeroCompte" value="{{ old('numeroCompte') }}" required autocomplete="numeroCompte" autofocus>
 
                                @error('numeroCompte')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>
 
                        <div class="form-group row mb-0">
                            <div class="col-md-4"></div>
                            <div class="col-md-4 offset-md-4">
                                <button type="submit" class="btn btn-success">
                                    {{ __('Connexion') }}
                                </button>
                            </div>
                            <div class="col-md-4"></div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection
et maintenant pour l'authentification j'ai créé un controlleur pour l'authentification:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
<?php
 
namespace App\Http\Controllers\Auth;
 
use App\Compte;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Str;
 
class ClientAuthController extends Controller
{
    use AuthenticatesUsers;
    protected $guardName = 'client';
    protected $maxAttempts = 3;
    protected $decayMinutes = 2;
 
    protected $loginRoute;
 
    public function __construct(){
 
    	$this->middleware('guest:client')->except('postLogout');
    	$this->loginRoute = route('client.loginClient');
    }
 
    public function getLogin(){
 
    	return view('client.loginClient');
    }
 
    public function postLogout(){
    	Auth::guard($this->guardName)->logout();
    	Session::flush();
    	return redirect()->guest($this->loginRoute);
    }
 
    public function postLogin(Request $request){
    	$this->validate($request, [
    		'numeroCompte' => 'required|string'
    	]);
 
    	if ($this->hasTooManyLoginAttempts($request)){
    		$this->fireLockoutEvent($request);
    		$this->sendLockoutResponse($request);
    	}
 
    	$credential =[
    		'numeroCompte' => $request->input('numeroCompte')
    	];
 
    	if (Auth::guard($this->guardName)->attempt($credential)){
    		$request->session()->regenerate();
    		$this->clearLoginAttempts($request);
    		return redirect()->intended();
    	} else{
    		$this->incrementLoginAttempts($request);
    		return redirect()->back()
    			->withInput()
    			->withErrors(["Numéro de compte incorrect!"]);
    	}
    }
 
}
Voici le model de la table Compte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
 
namespace App;
 
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\Compte as Authenticatable;
use Illuminate\Foundation\Auth\Clients as Authenticatable;
use Illuminate\Notifications\Notifiable;
 
class Compte extends Model
 
{
 
	use Notifiable;
 
	public $guard= 'client';
 
	protected $fillable = ['numeroCompte', 'solde', 'id_client'];
 
    public function client(){
 
		return $this->belongsTo(Clients::class);
	}
}
Voici mon fichier config/auth
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
 
        'api' => [
            'driver' => 'token',
            'provider' => 'users',
            'hash' => false,
        ],
 
        'clients' =>[
            'driver' => 'session',
            'provider' => 'compte',
 
        ],
    ],
 
 
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],
 
        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
 
        'clients'=> [
            'driver' => 'eloquent',
            'model' => App\Compte::class,
        ],
    ],
Voici la route:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Route::namespace('Auth')->group(function(){
    Route::get('loginClient', 'ClientAuthController@getLogin')->name('client.loginClient');
    Route::post('loginClient', 'ClientAuthController@postLogin');
});
Voici l'erreur qui se présente à moi quand j'essaie d'afficher la page d'authentification:
Nom : Annotation 2019-12-20 153317.png
Affichages : 173
Taille : 24,0 Ko

Besoin d'aide s'il vous plait. Merci