rawaby88/portal

3.0.1 2023-03-15 12:07 UTC

README

This package adding new guard ['portal'] to use on authenticated routes.

it will check if user has valid Token and permissions to endpoint

Installation

You can install the package via composer:

composer require rawaby88/portal

Usage

Add Portable trait to User model;

use Rawaby88\Portal\Portable;


use Portable;

Run migrate to update user table:

php artisan migrate

Migration Customization

If you are not going to use Portal's default migrations, you should call the

Portal::ignoreMigrations();

method in the register method of your

App\Providers\AppServiceProvider class.

You may export the default migrations by executing the following command:

 php artisan vendor:publish --tag=portal-migrations

Usage by adding middleware 'auth:portal' to endpoints

Route::middleware('auth:portal')->get('/user', function (Request $request) {
    return auth()->user()->token;
});

auth() functions will be available for you to use

auth()->check();
auth()->id();
auth()->user();
auth()->user()->token;
auth()->user()->appliance;

//you can also call other param as credit
auth()->user()->getData('credit');
auth()->user()->getData('workspace');

if you would like to change data stored in user table You may export the default config by executing the following command:

 php artisan vendor:publish --tag=portal-config

[/config/portal.php]

return [
	'auth_endpoint'       => env( 'PORTAL_AUTH_ENDPOINT', '172.17.0.1/api/auth/token/check/' ),
	'expiration'          => null,
	
	//user mode namespace
	'user_model'          => env( 'PORTAL_USER_MODEL', 'App\Models\User' ),
	
	// Mapping data from response to database
    //add or remove fields as you wish   
	'db_user_fields'      => [
		'id'    => 'user_id',
		'name'  => 'name',
		'email' => 'email'
	],
	
	// primary key for user table
	'user_model_key'      => 'user_id',
	
	// primary key type -- don't change
	'user_model_key_type' => 'string',
];

Security

If you discover any security related issues, please email github@dreamod.pl instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.