absolvent/bundle-api

7,686
Install
composer require absolvent/bundle-api
Latest Version:2.3.0
PHP:>=7.1.0
Laravel:5
License:MIT
Last Updated:Oct 2, 2020
Links: GitHub  ·  Packagist
Maintainer: Absolvent

absolvent/bundle-api

JWT Authentication Guard

Enable in project

  1. Add Absolvent\api\Providers\AuthServiceProvider to config/app.php providers.
  2. Create config/jwt.php similar to config/jwt.php in this bundle
  3. Change defaults.guard to jwt in config/auth.php
  4. Add
'jwt' => [
    'driver' => 'jwt',
    'provider' => 'users',
],

to guards in config/auth.php

  1. Add JWT_SECRET variable to .env (eq. JWT_SECRET=SvfJknJLYWwvadkCLVE7HIzn2JpWDkXv)

NOTE: JWT_SECRET should be te same as in microservice-users

Usage

Generally all Laravel authorization and authentication functionality should work out of the box when JwtAuthenticationGuard is configured properly.

Get jwt token / user information
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.

Permission based endpoint authentication

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

Allow sending PATH requests with multipart-form content type

Add Absolvent\api\Http\Middleware\PreparePatchMultiPartForm to Absolvent\api\Http\Kernel::$middleware

Make sure that PreparePatchMultiPartForm is after ValidatePostSize

Related Packages

laravel/pint

An opinionated code formatter for PHP.

206,568,116 3,169
tightenco/duster

Automatic configuration for Laravel apps to apply Tighten's standard linting & c...

3,327,636 604
directorytree/ldaprecord-laravel

LDAP Authentication & Management for Laravel.

2,861,582 574
hemp/presenter

Easy Model Presenters in Laravel

652,218 247
juzaweb/cms

Juzaweb CMS is a Content Management System (CMS) developed based on Laravel Fram...

571,290 190

Version History

Version Released PHP Laravel License
2.3.0 >=7.1.0 5.4.*|5.6.* MIT
2.2.0 >=7.1.0 5.4.* MIT
2.1.2 >=7.1.0 5.4.* MIT
2.1.1 >=7.1.0 5.4.* MIT
2.1.0 >=7.1.0 5.4.* MIT