awes-io / auth
Laravel Authentication package with built-in two-factor (Authy) and social authentication (Socialite).
Fund package maintenance!
Patreon
Open Collective
Installs: 26 697
Dependents: 1
Suggesters: 0
Security: 0
Stars: 38
Watchers: 5
Forks: 1
Open Issues: 1
Requires
- guzzlehttp/guzzle: ^6.3
- illuminate/support: ~5|~6
- laravel/socialite: ^4.0
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ~3.0
- phpunit/phpunit: ~7.0
- sempro/phpunit-pretty-print: ^1.0
README
Authentication
Laravel Authentication package with built-in two-factor (Authy) and social authentication (Socialite).
Table of Contents
Installation
Via Composer
$ composer require awes-io/auth
The package will automatically register itself.
You can publish migrations:
php artisan vendor:publish --provider="AwesIO\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="AwesIO\Auth\AuthServiceProvider" --tag="views"
Configuration
Publish config file:
php artisan vendor:publish --provider="AwesIO\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 AwesIO\Auth\Models\Traits\HasSocialAuthentication; use AwesIO\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 AwesIO\Auth\Models\Traits\SendsPasswordReset; use AwesIO\Auth\Models\Traits\SendsEmailVerification; class User extends Authenticatable { use SendsEmailVerification, SendsPasswordReset; }
Usage
Add to routes/web.php:
AwesAuth::routes();
You can disable registration:
AwesAuth::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.