dingo / api

A RESTful API package for the Laravel and Lumen frameworks.
BSD 3-Clause "New" or "Revised" License
9.33k stars 1.25k forks source link

Multiple auth providers and dingo #1767

Open prasanthsd opened 3 years ago

prasanthsd commented 3 years ago
Q A
Bug? yes
New Feature? no
Framework Laravel
Framework version 8.x
Package version 3.x.x
PHP version 74

Actual Behaviour

I have created multiple guards and providers in auth.php. I have User model and AdminUser model. I can actually login and generate JWT token in both cases. But then problem is in my auth middleware where I try to check if the user is authenticated. The below code (It resides inside a middleware) always checks the default Users model and not the admin users model. Is there any way to fix it?

$this->auth->authenticate($route->getAuthenticationProviders());

specialtactics commented 3 years ago

Hi

I don't overly understand your issue (in particular the user model vs admin model), but the way dingo authentication works is it just goes down the list of authentication providers until one authenticates, and if none do, then it considers the request unauthenticated.

You should also read this, as you should be using dingo auth, not laravel auth (which you might be) https://github.com/dingo/api/wiki/Authentication