Laravel Authentication package with built-in two-factor (Authy) and social authentication (Socialite).
Via Composer
$ composer require awes-io/authThe 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 migratePublish views:
php artisan vendor:publish --provider="AwesIO\Auth\AuthServiceProvider" --tag="views"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' => '/',
    ...
],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;
}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;
}Add to routes/web.php:
AwesAuth::routes();You can disable registration:
AwesAuth::routes(['register' => false]);Package will register several routes.
- 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'
 
You can run the tests with:
composer testPlease see contributing.md for details and a todolist.
