apichef / laravel-obfuscate
Laravel package for obfuscating ids in urls.
Installs: 6 716
Dependents: 1
Suggesters: 0
Security: 0
Stars: 8
Watchers: 2
Forks: 9
Open Issues: 0
Requires
- php: ^8.0|^8.1|^8.2
- illuminate/database: ^9.0|^10.0|^11.0
- illuminate/support: ^9.0|^10.0|^11.0
- jenssegers/optimus: ^1.1
Requires (Dev)
- orchestra/testbench: ^6.23|^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.6|^10.5 || ^11.0.1
- squizlabs/php_codesniffer: ^3.9
This package is auto-updated.
Last update: 2024-12-27 11:16:17 UTC
README
Easy id obfuscation for Laravel
Install
Via Composer
$ composer require apichef/laravel-obfuscate
Usage
Route Model Binding
// Model namespace App; use Illuminate\Database\Eloquent\Model; use ApiChef\Obfuscate\Obfuscatable; class Post extends Model { use Obfuscatable; // ... } // Route Route::get('/posts/{post}', function (Post $post) { return [ 'id' => $post->getRouteKey(), 'title' => $post->title, ]; })->name('post.show'); // Generate the URL to a named route. $post = Post::find(1); echo(route('post.show', $post)); // https://my-app.test/api/posts/458047115
Validation
namespace App\Http\Requests; use ApiChef\Obfuscate\Rules\HashExists; use Illuminate\Foundation\Http\FormRequest; class PostStoreRequest extends FormRequest { // ... public function rules() { return [ 'post_id' => [ 'required', new HashExists('posts', 'id') ], ]; } }
Facade
use ApiChef\Obfuscate\Support\Facades\Obfuscate; $result = Obfuscate::encode(1); // 458047115 $result = Obfuscate::encode([1, 2]); // [458047115, 2033899500] $result = Obfuscate::decode('458047115'); // 1 $result = Obfuscate::decode([458047115, 2033899500]); // [1, 2]
Change log
Please see CHANGELOG for more information on what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Security
If you discover any security related issues, please email milroy@outlook.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.