awema-pl / module-auth
Laravel Authentication package with built-in two-factor (Authy) and social authentication (Socialite).
Fund package maintenance!
Patreon
Open Collective
Requires
- awema-pl/module-indigo-layout: dev-master
- guzzlehttp/guzzle: ^7.0.1
- illuminate/support: ~5|~6|~7|~8|~9
- laravel/sanctum: ^2.8
- laravel/ui: ^3.0
README
Authentication
Laravel Authentication package with built-in two-factor (Authy) and social authentication (Socialite).
Table of Contents
Installation
Via Composer
$ composer require awema-pl/module-auth
The package will automatically register itself.
You can publish migrations:
php artisan vendor:publish --provider="AwemaPL\Auth\AuthServiceProvider" --tag="migrations"
After migrations have been published you can create required db tables by running:
php artisan migrate
Publish views:
php artisan vendor:publish --provider="AwemaPL\Auth\AuthServiceProvider" --tag="views"
Configuration
Publish config file:
php artisan vendor:publish --provider="AwemaPL\Auth\AuthServiceProvider" --tag="config"
You can disable additional features by commenting them out:
'enabled' => [ 'social', // 'two_factor', // 'email_verification', ],
Add new socialite services:
'services' => [ 'github' => [ 'name' => 'GitHub' ], ... ], 'github' => [ 'client_id' => env('GITHUB_CLIENT_ID'), ... ],
And configure redirect paths:
'redirects' => [ 'login' => '/twofactor', 'reset_password' => '/', ... ],
Social and two-factor authentication
Several .env variables required if additional modules were enabled in config:
# SOCIALITE GITHUB GITHUB_CLIENT_ID= GITHUB_CLIENT_SECRET= GITHUB_REDIRECT_URL=http://auth.test/login/github/callback # TWO FACTOR AUTHY AUTHY_SECRET=
If you enabled social and/or two factor authentication add respective traits to User model class:
use AwemaPL\Auth\Models\Traits\HasSocialAuthentication; use AwemaPL\Auth\Models\Traits\HasTwoFactorAuthentication; class User extends Authenticatable { use HasSocialAuthentication, HasTwoFactorAuthentication; }
Email verification & resetting passwords
To use email verification functionality and to reset passwords, add SendsEmailVerification
and SendsPasswordReset
traits:
use AwemaPL\Auth\Models\Traits\SendsPasswordReset; use AwemaPL\Auth\Models\Traits\SendsEmailVerification; class User extends Authenticatable { use SendsEmailVerification, SendsPasswordReset; }
Usage
Add to routes/web.php:
AwemaAuth::routes();
You can disable registration:
AwemaAuth::routes(['register' => false]);
Package will register several routes.
Besides default authentication routes, it will add:
- Socialite routes
'login.social'
'login/{service}/callback'
- Two factor authentication setup routes
'twofactor.index'
'twofactor.store'
'twofactor.destroy'
'twofactor.verify'
- Two factor authentication login routes
'login.twofactor.index'
'login.twofactor.verify'
- Email verification routes
'verification.resend'
'verification.code.verify'
'verification.code'
'verification.verify'
Testing
You can run the tests with:
composer test
Contributing
Please see contributing.md for details and a todolist.