Je suis nouveau à la fois laravel et Lumen. Je créais une API de connexion avec oauth2.0 dans Lumen 5.6, j'ai installé un passeport et généré un jeton. Ci-dessous, ma fonction de contrôleur de connexion et cela fonctionne très bien. Il retourne jeton.
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Route;
//use Illuminate\Support\Facades\DB;
use App\User;
use Auth;
public function login(Request $request)
{
global $app;
$proxy = Request::create(
'/oauth/token',
'post',
[
'grant_type' => env('API_GRAND_TYPE'),
'client_id' => env('API_CLIENT_ID'),
'client_secret' => env('API_CLIENT_SECRET'),
'username' => $request->username,
'password' => $request->password,
]
);
return $app->dispatch($proxy);
}
Étant donné que je dois vérifier le statut de l'utilisateur en dehors du nom d'utilisateur et du mot de passe, je dois d'abord vérifier les informations d'identification de l'utilisateur. donc j'aime ça.
public function login(Request $request)
{
$credentials = $request->only('username', 'password');
if (Auth::attempt($credentials)) {
return ['result' => 'ok'];
}
return ['result' => 'not ok'];
}
Here i am getting this error.
Method Illuminate\Auth\RequestGuard::attempt does not exist.
So i tried Auth::check instead of Auth::attempt.
Now there is no error but it always return false even though the credentials are valid.
I searched a lot for a solution but i didn't get.
Le protecteur de fonction est uniquement disponible pour les itinéraires avec un middleware Web
public function login() {
if(Auth::guard('web')->attempt(['email' => $email, 'password' => $password], false, false)) {requests
// good
} else {
// invalid credentials, act accordingly
}
}