- Add
Absolvent\api\Providers\AuthServiceProvider
toconfig/app.php
providers. - Create
config/jwt.php
similar toconfig/jwt.php
in this bundle - Change
defaults.guard
tojwt
inconfig/auth.php
- Add
'jwt' => [
'driver' => 'jwt',
'provider' => 'users',
],
to guards
in config/auth.php
- Add
JWT_SECRET
variable to.env
(eq.JWT_SECRET=SvfJknJLYWwvadkCLVE7HIzn2JpWDkXv
)
NOTE: JWT_SECRET
should be te same as in microservice-users
Generally all Laravel authorization and authentication functionality
should work out of the box when JwtAuthenticationGuard
is configured properly.
use Illuminate\Support\Facades\Auth;
$user = Auth::user(); // returns JwtUser or null
$user = Auth::authenticate() // returns JwtUser or throws Exception
$jwtToken = Auth::getName(); // returns jwt token
$userSub = Auth::id(); // returns user email (jwt token `sub` claim)
User information are taken from jwt token so there are very basic.
To get extended user information you have to issue call to microservice-users
.
Add permission
or can
middleware to endpoint controller
class EndpointController extends \Absolvent\api\Http\Controller
{
public function __construct()
{
$this->middleware('permission:TALENTDAYS_ADMIN|TALENTDAYS_AREA');
}
// ...
}
In above example only user with TALENTDAYS_ADMIN
or TALENTDAYS_AREA
can access the endpoint
Add Absolvent\api\Http\Middleware\PreparePatchMultiPartForm
to Absolvent\api\Http\Kernel::$middleware
Make sure that PreparePatchMultiPartForm
is after ValidatePostSize