Reputation: 113
I'm using my own collection named customer instead of users in this case.
Model
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
// use Illuminate\Database\Eloquent\Model;
use Jenssegers\Mongodb\Eloquent\Model;
use Jenssegers\Mongodb\Auth\User as Authenticatable;
class Customer extends Authenticatable
{
use HasFactory;
protected $collection='customer';
protected $guarded = ['id'];
public $timestamps = false;
}
Controller
namespace App\Http\Controllers;
use App\Models\Customer;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
use Illuminate\Contracts\Auth\Authenticatable;
class LoginController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('login', ["title" => "LOGIN"]);
}
public function validation(Request $request)
{
$credentials = $request->validate([
'email' => ['required', 'email'],
'password' => ['required'],
]);
if (Auth::attempt($credentials)) {
$request->session()->regenerate();
return redirect()->intended('dashboard');
}
return back()->withErrors([
'email' => 'The provided credentials do not match our records.',
])->onlyInput('email');
}
}
config/auth.php
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\Customer::class,
],
config/database.php
'mongodb' => [
'driver' => 'mongodb',
'dsn' => env('DB_URI', 'mongodb://localhost:27017'),
'database' => 'herbal66',
],
.env
DB_CONNECTION=mongodb
DB_URI=mongodb://localhost:27017
It always return 'The provided credentials do not match our records.'.
What should i do ?
Upvotes: 1
Views: 535