If you want to quickly add secure token-based authentication to Laravel apps, feel free to check Auth0's Laravel SDK and free plan at https://auth0.com/developers. |
Laravel 8 with user authentication, registration with email confirmation, social media authentication, password recovery, and captcha protection. Uses official Bootstrap 4. This also makes full use of Controllers for the routes, templates for the views, and makes use of middleware for routing. Project can be stood up in minutes.
Laravel Auth Features |
---|
Built on Laravel 8 |
Built on Bootstrap 4 |
Uses MySQL Database (can be changed) |
Uses Artisan to manage database migration, schema creations, and create/publish page controller templates |
Dependencies are managed with COMPOSER |
Laravel Scaffolding User and Administrator Authentication. |
User Socialite Logins ready to go - See API list used below |
Google Maps API v3 for User Location lookup and Geocoding |
CRUD (Create, Read, Update, Delete) Themes Management |
CRUD (Create, Read, Update, Delete) User Management |
Robust Laravel Logging with admin UI using MonoLog |
Google reCaptcha Protection with Google API |
User Registration with email verification |
Makes use of Laravel Mix to compile assets |
Makes use of Language Localization Files |
Active Nav states using Laravel Requests |
Restrict User Email Activation Attempts |
Capture IP to users table upon signup |
Uses Laravel Debugger for development |
Makes use of Password Strength Meter |
Makes use of hideShowPassword |
User Avatar Image AJAX Upload with Dropzone.js |
User Gravatar using Gravatar API |
User Password Reset via Email Token |
User Login with remember password |
User Roles/ACL Implementation |
Roles and Permissions GUI |
Makes use of Laravel's Soft Delete Structure |
Soft Deleted Users Management System |
Permanently Delete Soft Deleted Users |
User Delete Account with Goodbye email |
User Restore Deleted Account Token |
Restore Soft Deleted Users |
View Soft Deleted Users |
Captures Soft Delete Date |
Captures Soft Delete IP |
Admin Routing Details UI |
Admin PHP Information UI |
Eloquent user profiles |
User Themes |
404 Page |
403 Page |
Configurable Email Notification via Laravel-Exception-Notifier |
Activity Logging using Laravel-logger |
Optional 2-step account login verfication with Laravel 2-Step Verification |
Uses Laravel PHP Info package |
Uses Laravel Blocker package |
git clone https://github.com/jeremykenedy/laravel-auth.git laravel-auth
mysql -u root -p
, if using Vagrant: mysql -u homestead -psecret
create database laravelAuth;
\q
cp .env.example .env
.env
filecomposer update
from the projects root folderphp artisan vendor:publish --tag=laravelroles &&
php artisan vendor:publish --tag=laravel2step
sudo chmod -R 755 ../laravel-auth
php artisan key:generate
php artisan migrate
composer dump-autoload
php artisan db:seed
yarn install
yarn run dev
or yarn run production
yarn run watch
npm install
npm run dev
or npm run production
npm run watch
php artisan config:cache
Password | Access | |
---|---|---|
user@user.com | password | User Access |
admin@admin.com | password | Admin Access |
Slug | Name |
---|---|
ipAddress | IP Address |
domain | Domain Name |
user | User |
city | City |
state | State |
country | Country |
countryCode | Country Code |
continent | Continent |
region | Region |
Type | Value | Note |
---|---|---|
domain | test.com | Block all domains/emails @test.com |
domain | test.ca | Block all domains/emails @test.ca |
domain | fake.com | Block all domains/emails @fake.com |
domain | example.com | Block all domains/emails @example.com |
domain | mailinator.com | Block all domains/emails @mailinator.com |
+--------+----------------------------------------+---------------------------------------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------------------------------------+---------------------------------------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
| | GET|HEAD | / | welcome | App\Http\Controllers\WelcomeController@welcome | web,checkblocked |
| | GET|HEAD | _debugbar/assets/javascript | debugbar.assets.js | Barryvdh\Debugbar\Controllers\AssetController@js | Barryvdh\Debugbar\Middleware\DebugbarEnabled,Closure |
| | GET|HEAD | _debugbar/assets/stylesheets | debugbar.assets.css | Barryvdh\Debugbar\Controllers\AssetController@css | Barryvdh\Debugbar\Middleware\DebugbarEnabled,Closure |
| | DELETE | _debugbar/cache/{key}/{tags?} | debugbar.cache.delete | Barryvdh\Debugbar\Controllers\CacheController@delete | Barryvdh\Debugbar\Middleware\DebugbarEnabled,Closure |
| | GET|HEAD | _debugbar/clockwork/{id} | debugbar.clockwork | Barryvdh\Debugbar\Controllers\OpenHandlerController@clockwork | Barryvdh\Debugbar\Middleware\DebugbarEnabled,Closure |
| | GET|HEAD | _debugbar/open | debugbar.openhandler | Barryvdh\Debugbar\Controllers\OpenHandlerController@handle | Barryvdh\Debugbar\Middleware\DebugbarEnabled,Closure |
| | GET|HEAD | _debugbar/telescope/{id} | debugbar.telescope | Barryvdh\Debugbar\Controllers\TelescopeController@show | Barryvdh\Debugbar\Middleware\DebugbarEnabled,Closure |
| | GET|HEAD | activate | activate | App\Http\Controllers\Auth\ActivateController@initial | web,activity,checkblocked,auth |
| | GET|HEAD | activate/{token} | authenticated.activate | App\Http\Controllers\Auth\ActivateController@activate | web,activity,checkblocked,auth |
| | GET|HEAD | activation | authenticated.activation-resend | App\Http\Controllers\Auth\ActivateController@resend | web,activity,checkblocked,auth |
| | GET|HEAD | activation-required | activation-required | App\Http\Controllers\Auth\ActivateController@activationRequired | web,auth,activated,activity,checkblocked |
| | GET|HEAD | active-users | | App\Http\Controllers\AdminDetailsController@activeUsers | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | GET|HEAD | activity | activity | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@showAccessLog | web,auth,activity,role:admin |
| | DELETE | activity/clear-activity | clear-activity | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@clearActivityLog | web,auth,activity,role:admin |
| | GET|HEAD | activity/cleared | cleared | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@showClearedActivityLog | web,auth,activity,role:admin |
| | GET|HEAD | activity/cleared/log/{id} | | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@showClearedAccessLogEntry | web,auth,activity,role:admin |
| | DELETE | activity/destroy-activity | destroy-activity | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@destroyActivityLog | web,auth,activity,role:admin |
| | GET|HEAD | activity/log/{id} | | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@showAccessLogEntry | web,auth,activity,role:admin |
| | POST | activity/restore-log | restore-activity | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@restoreClearedActivityLog | web,auth,activity,role:admin |
| | POST | avatar/upload | avatar.upload | App\Http\Controllers\ProfilesController@upload | web,auth,activated,currentUser,activity,twostep,checkblocked |
| | GET|HEAD | blocker | laravelblocker::blocker.index | jeremykenedy\LaravelBlocker\App\Http\Controllers\LaravelBlockerController@index | web,checkblocked,auth,activated,role:admin,activity,twostep |
| | POST | blocker | laravelblocker::blocker.store | jeremykenedy\LaravelBlocker\App\Http\Controllers\LaravelBlockerController@store | web,checkblocked,auth,activated,role:admin,activity,twostep |
| | GET|HEAD | blocker-deleted | laravelblocker::blocker-deleted | jeremykenedy\LaravelBlocker\App\Http\Controllers\LaravelBlockerDeletedController@index | web,checkblocked,auth,activated,role:admin,activity,twostep |
| | DELETE | blocker-deleted-destroy-all | laravelblocker::destroy-all-blocked | jeremykenedy\LaravelBlocker\App\Http\Controllers\LaravelBlockerDeletedController@destroyAllItems | web,checkblocked,auth,activated,role:admin,activity,twostep |
| | POST | blocker-deleted-restore-all | laravelblocker::blocker-deleted-restore-all | jeremykenedy\LaravelBlocker\App\Http\Controllers\LaravelBlockerDeletedController@restoreAllBlockedItems | web,checkblocked,auth,activated,role:admin,activity,twostep |
| | DELETE | blocker-deleted/{id} | laravelblocker::blocker-item-destroy | jeremykenedy\LaravelBlocker\App\Http\Controllers\LaravelBlockerDeletedController@destroy | web,checkblocked,auth,activated,role:admin,activity,twostep |
| | PUT | blocker-deleted/{id} | laravelblocker::blocker-item-restore | jeremykenedy\LaravelBlocker\App\Http\Controllers\LaravelBlockerDeletedController@restoreBlockedItem | web,checkblocked,auth,activated,role:admin,activity,twostep |
| | GET|HEAD | blocker-deleted/{id} | laravelblocker::blocker-item-show-deleted | jeremykenedy\LaravelBlocker\App\Http\Controllers\LaravelBlockerDeletedController@show | web,checkblocked,auth,activated,role:admin,activity,twostep |
| | GET|HEAD | blocker/create | laravelblocker::blocker.create | jeremykenedy\LaravelBlocker\App\Http\Controllers\LaravelBlockerController@create | web,checkblocked,auth,activated,role:admin,activity,twostep |
| | DELETE | blocker/{blocker} | laravelblocker::blocker.destroy | jeremykenedy\LaravelBlocker\App\Http\Controllers\LaravelBlockerController@destroy | web,checkblocked,auth,activated,role:admin,activity,twostep |
| | PUT|PATCH | blocker/{blocker} | laravelblocker::blocker.update | jeremykenedy\LaravelBlocker\App\Http\Controllers\LaravelBlockerController@update | web,checkblocked,auth,activated,role:admin,activity,twostep |
| | GET|HEAD | blocker/{blocker} | laravelblocker::blocker.show | jeremykenedy\LaravelBlocker\App\Http\Controllers\LaravelBlockerController@show | web,checkblocked,auth,activated,role:admin,activity,twostep |
| | GET|HEAD | blocker/{blocker}/edit | laravelblocker::blocker.edit | jeremykenedy\LaravelBlocker\App\Http\Controllers\LaravelBlockerController@edit | web,checkblocked,auth,activated,role:admin,activity,twostep |
| | GET|HEAD | exceeded | exceeded | App\Http\Controllers\Auth\ActivateController@exceeded | web,activity,checkblocked,auth |
| | GET|HEAD | home | public.home | App\Http\Controllers\UserController@index | web,auth,activated,activity,twostep,checkblocked |
| | GET|HEAD | images/profile/{id}/avatar/{image} | | App\Http\Controllers\ProfilesController@userProfileAvatar | web,auth,activated,currentUser,activity,twostep,checkblocked |
| | POST | login | | App\Http\Controllers\Auth\LoginController@login | web,guest |
| | GET|HEAD | login | login | App\Http\Controllers\Auth\LoginController@showLoginForm | web,guest |
| | POST | logout | logout | App\Http\Controllers\Auth\LoginController@logout | web |
| | GET|HEAD | logout | logout | App\Http\Controllers\Auth\LoginController@logout | web,auth,activated,activity,checkblocked |
| | GET|HEAD | logs | | Rap2hpoutre\LaravelLogViewer\LogViewerController@index | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | POST | password/email | password.email | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail | web,guest |
| | GET|HEAD | password/reset | password.request | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web,guest |
| | POST | password/reset | password.update | App\Http\Controllers\Auth\ResetPasswordController@reset | web,guest |
| | GET|HEAD | password/reset/{token} | password.reset | App\Http\Controllers\Auth\ResetPasswordController@showResetForm | web,guest |
| | GET|HEAD | permission-deleted/{id} | laravelroles::permission-show-deleted | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelpermissionsDeletedController@show | web,auth,role:admin |
| | DELETE | permission-destroy/{id} | laravelroles::permission-item-destroy | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelpermissionsDeletedController@destroy | web,auth,role:admin |
| | PUT | permission-restore/{id} | laravelroles::permission-restore | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelpermissionsDeletedController@restorePermission | web,auth,role:admin |
| | POST | permissions | laravelroles::permissions.store | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelPermissionsController@store | web,auth,role:admin |
| | GET|HEAD | permissions | laravelroles::permissions.index | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelPermissionsController@index | web,auth,role:admin |
| | GET|HEAD | permissions-deleted | laravelroles::permissions-deleted | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelpermissionsDeletedController@index | web,auth,role:admin |
| | DELETE | permissions-deleted-destroy-all | laravelroles::destroy-all-deleted-permissions | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelpermissionsDeletedController@destroyAllDeletedPermissions | web,auth,role:admin |
| | POST | permissions-deleted-restore-all | laravelroles::permissions-deleted-restore-all | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelpermissionsDeletedController@restoreAllDeletedPermissions | web,auth,role:admin |
| | GET|HEAD | permissions/create | laravelroles::permissions.create | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelPermissionsController@create | web,auth,role:admin |
| | GET|HEAD | permissions/{permission} | laravelroles::permissions.show | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelPermissionsController@show | web,auth,role:admin |
| | DELETE | permissions/{permission} | laravelroles::permissions.destroy | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelPermissionsController@destroy | web,auth,role:admin |
| | PUT|PATCH | permissions/{permission} | laravelroles::permissions.update | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelPermissionsController@update | web,auth,role:admin |
| | GET|HEAD | permissions/{permission}/edit | laravelroles::permissions.edit | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelPermissionsController@edit | web,auth,role:admin |
| | GET|HEAD|POST|PUT|PATCH|DELETE|OPTIONS | php | | Illuminate\Routing\RedirectController | web |
| | GET|HEAD | phpinfo | laravelPhpInfo::phpinfo | jeremykenedy\LaravelPhpInfo\App\Http\Controllers\LaravelPhpInfoController@phpinfo | web,auth,activated,role:admin,activity,twostep |
| | GET|HEAD | profile/create | profile.create | App\Http\Controllers\ProfilesController@create | web,auth,activated,currentUser,activity,twostep,checkblocked |
| | PUT|PATCH | profile/{profile} | profile.update | App\Http\Controllers\ProfilesController@update | web,auth,activated,currentUser,activity,twostep,checkblocked |
| | GET|HEAD | profile/{profile} | profile.show | App\Http\Controllers\ProfilesController@show | web,auth,activated,currentUser,activity,twostep,checkblocked |
| | GET|HEAD | profile/{profile}/edit | profile.edit | App\Http\Controllers\ProfilesController@edit | web,auth,activated,currentUser,activity,twostep,checkblocked |
| | GET|HEAD | profile/{username} | {username} | App\Http\Controllers\ProfilesController@show | web,auth,activated,activity,twostep,checkblocked |
| | DELETE | profile/{username}/deleteUserAccount | {username} | App\Http\Controllers\ProfilesController@deleteUserAccount | web,auth,activated,currentUser,activity,twostep,checkblocked |
| | PUT | profile/{username}/updateUserAccount | {username} | App\Http\Controllers\ProfilesController@updateUserAccount | web,auth,activated,currentUser,activity,twostep,checkblocked |
| | PUT | profile/{username}/updateUserPassword | {username} | App\Http\Controllers\ProfilesController@updateUserPassword | web,auth,activated,currentUser,activity,twostep,checkblocked |
| | GET|HEAD | re-activate/{token} | user.reactivate | App\Http\Controllers\RestoreUserController@userReActivate | web,activity,checkblocked |
| | POST | register | | App\Http\Controllers\Auth\RegisterController@register | web,guest |
| | GET|HEAD | register | register | App\Http\Controllers\Auth\RegisterController@showRegistrationForm | web,guest |
| | GET|HEAD | role-deleted/{id} | laravelroles::role-show-deleted | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesDeletedController@show | web,auth,role:admin |
| | DELETE | role-destroy/{id} | laravelroles::role-item-destroy | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesDeletedController@destroy | web,auth,role:admin |
| | PUT | role-restore/{id} | laravelroles::role-restore | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesDeletedController@restoreRole | web,auth,role:admin |
| | POST | roles | laravelroles::roles.store | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesController@store | web,auth,role:admin |
| | GET|HEAD | roles | laravelroles::roles.index | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesController@index | web,auth,role:admin |
| | GET|HEAD | roles-deleted | laravelroles::roles-deleted | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesDeletedController@index | web,auth,role:admin |
| | DELETE | roles-deleted-destroy-all | laravelroles::destroy-all-deleted-roles | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesDeletedController@destroyAllDeletedRoles | web,auth,role:admin |
| | POST | roles-deleted-restore-all | laravelroles::roles-deleted-restore-all | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesDeletedController@restoreAllDeletedRoles | web,auth,role:admin |
| | GET|HEAD | roles/create | laravelroles::roles.create | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesController@create | web,auth,role:admin |
| | GET|HEAD | roles/{role} | laravelroles::roles.show | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesController@show | web,auth,role:admin |
| | PUT|PATCH | roles/{role} | laravelroles::roles.update | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesController@update | web,auth,role:admin |
| | DELETE | roles/{role} | laravelroles::roles.destroy | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesController@destroy | web,auth,role:admin |
| | GET|HEAD | roles/{role}/edit | laravelroles::roles.edit | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesController@edit | web,auth,role:admin |
| | GET|HEAD | routes | | App\Http\Controllers\AdminDetailsController@listRoutes | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | POST | search-blocked | laravelblocker::search-blocked | jeremykenedy\LaravelBlocker\App\Http\Controllers\LaravelBlockerController@search | web,checkblocked,auth,activated,role:admin,activity,twostep |
| | POST | search-blocked-deleted | laravelblocker::search-blocked-deleted | jeremykenedy\LaravelBlocker\App\Http\Controllers\LaravelBlockerDeletedController@search | web,checkblocked,auth,activated,role:admin,activity,twostep |
| | POST | search-users | search-users | App\Http\Controllers\UsersManagementController@search | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | GET|HEAD | social/handle/{provider} | social.handle | App\Http\Controllers\Auth\SocialController@getSocialHandle | web,activity,checkblocked |
| | GET|HEAD | social/redirect/{provider} | social.redirect | App\Http\Controllers\Auth\SocialController@getSocialRedirect | web,activity,checkblocked |
| | GET|HEAD | terms | terms | App\Http\Controllers\TermsController@terms | web,checkblocked |
| | GET|HEAD | themes | themes | App\Http\Controllers\ThemesManagementController@index | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | POST | themes | themes.store | App\Http\Controllers\ThemesManagementController@store | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | GET|HEAD | themes/create | themes.create | App\Http\Controllers\ThemesManagementController@create | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | DELETE | themes/{theme} | themes.destroy | App\Http\Controllers\ThemesManagementController@destroy | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | PUT|PATCH | themes/{theme} | themes.update | App\Http\Controllers\ThemesManagementController@update | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | GET|HEAD | themes/{theme} | themes.show | App\Http\Controllers\ThemesManagementController@show | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | GET|HEAD | themes/{theme}/edit | themes.edit | App\Http\Controllers\ThemesManagementController@edit | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | GET|HEAD | users | users | App\Http\Controllers\UsersManagementController@index | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | POST | users | users.store | App\Http\Controllers\UsersManagementController@store | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | GET|HEAD | users/create | users.create | App\Http\Controllers\UsersManagementController@create | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | GET|HEAD | users/deleted | deleted.index | App\Http\Controllers\SoftDeletesController@index | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | GET|HEAD | users/deleted/{deleted} | deleted.show | App\Http\Controllers\SoftDeletesController@show | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | DELETE | users/deleted/{deleted} | deleted.destroy | App\Http\Controllers\SoftDeletesController@destroy | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | PUT|PATCH | users/deleted/{deleted} | deleted.update | App\Http\Controllers\SoftDeletesController@update | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | DELETE | users/{user} | user.destroy | App\Http\Controllers\UsersManagementController@destroy | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | PUT|PATCH | users/{user} | users.update | App\Http\Controllers\UsersManagementController@update | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | GET|HEAD | users/{user} | users.show | App\Http\Controllers\UsersManagementController@show | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | GET|HEAD | users/{user}/edit | users.edit | App\Http\Controllers\UsersManagementController@edit | web,auth,activated,role:admin,activity,twostep,checkblocked |
| | GET|HEAD | verification/needed | laravel2step::verificationNeeded | jeremykenedy\laravel2step\App\Http\Controllers\TwoStepController@showVerification | web,auth,Closure |
| | POST | verification/resend | laravel2step::resend | jeremykenedy\laravel2step\App\Http\Controllers\TwoStepController@resend | web,auth,Closure |
| | POST | verification/verify | laravel2step::verify | jeremykenedy\laravel2step\App\Http\Controllers\TwoStepController@verify | web,auth,Closure |
+--------+----------------------------------------+---------------------------------------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
Go to https://socialiteproviders.github.io and select the provider to be added.
From the projects root folder, in the terminal, run composer to get the needed package.
composer require socialiteproviders/twitch
From the projects root folder run composer update
Add the service provider to /config/services.php
'twitch' => [
'client_id' => env('TWITCH_KEY'),
'client_secret' => env('TWITCH_SECRET'),
'redirect' => env('TWITCH_REDIRECT_URI'),
],
Add the API credentials to /.env
TWITCH_KEY=YOURKEYHERE
TWITCH_SECRET=YOURSECRETHERE
TWITCH_REDIRECT_URI=http://YOURWEBSITEURL.COM/social/handle/twitch
Add the social media login link:
Example:In file /resources/views/auth/login.blade.php
add ONE of the following:
<a href="{{ route('social.redirect', ['provider' => 'twitch']) }}" class="btn btn-lg btn-primary btn-block twitch">Twitch</a>
{!! HTML::link(route('social.redirect', ['provider' => 'twitch']), 'Twitch', array('class' => 'btn btn-lg btn-primary btn-block twitch')) !!}
Example .env
file:
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
APP_PROJECT_VERSION=7
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=pusher
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
EMAIL_EXCEPTION_ENABLED=false
EMAIL_EXCEPTION_FROM="${MAIL_FROM_ADDRESS}"
EMAIL_EXCEPTION_TO='email1@gmail.com, email2@gmail.com'
EMAIL_EXCEPTION_CC=''
EMAIL_EXCEPTION_BCC=''
EMAIL_EXCEPTION_SUBJECT=''
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
ACTIVATION=true
ACTIVATION_LIMIT_TIME_PERIOD=24
ACTIVATION_LIMIT_MAX_ATTEMPTS=3
NULL_IP_ADDRESS=0.0.0.0
DEBUG_BAR_ENVIRONMENT=local
USER_RESTORE_CUTOFF_DAYS=31
USER_RESTORE_ENCRYPTION_KEY=
USER_LIST_PAGINATION_SIZE=50
LARAVEL_2STEP_ENABLED=false
LARAVEL_2STEP_DATABASE_CONNECTION=mysql
LARAVEL_2STEP_DATABASE_TABLE=laravel2step
LARAVEL_2STEP_USER_MODEL=App\User
LARAVEL_2STEP_EMAIL_FROM=
LARAVEL_2STEP_EMAIL_FROM_NAME="Laravel 2 Step Verification"
LARAVEL_2STEP_EMAIL_SUBJECT='Laravel 2 Step Verification'
LARAVEL_2STEP_EXCEEDED_COUNT=3
LARAVEL_2STEP_EXCEEDED_COUNTDOWN_MINUTES=1440
LARAVEL_2STEP_VERIFIED_LIFETIME_MINUTES=360
LARAVEL_2STEP_RESET_BUFFER_IN_SECONDS=300
LARAVEL_2STEP_CSS_FILE="css/laravel2step/app.css"
LARAVEL_2STEP_APP_CSS_ENABLED=false
LARAVEL_2STEP_APP_CSS="css/app.css"
LARAVEL_2STEP_BOOTSTRAP_CSS_CDN_ENABLED=true
LARAVEL_2STEP_BOOTSTRAP_CSS_CDN="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
DEFAULT_GRAVATAR_SIZE=80
DEFAULT_GRAVATAR_FALLBACK=http://c1940652.r52.cf0.rackcdn.com/51ce28d0fb4f442061000000/Screen-Shot-2013-06-28-at-5.22.23-PM.png
DEFAULT_GRAVATAR_SECURE=false
DEFAULT_GRAVATAR_MAX_RATING=g
DEFAULT_GRAVATAR_FORCE_DEFAULT=false
DEFAULT_GRAVATAR_FORCE_EXTENSION=jpg
DROPZONE_JS_CDN=https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.4.0/dropzone.js
LARAVEL_LOGGER_DATABASE_CONNECTION=mysql
LARAVEL_LOGGER_DATABASE_TABLE=laravel_logger_activity
LARAVEL_LOGGER_ROLES_ENABLED=true
LARAVEL_LOGGER_ROLES_MIDDLWARE=role:admin
LARAVEL_LOGGER_MIDDLEWARE_ENABLED=true
LARAVEL_LOGGER_USER_MODEL=App\Models\User
LARAVEL_LOGGER_PAGINATION_ENABLED=true
LARAVEL_LOGGER_PAGINATION_PER_PAGE=25
LARAVEL_LOGGER_DATATABLES_ENABLED=false
LARAVEL_LOGGER_DASHBOARD_MENU_ENABLED=true
LARAVEL_LOGGER_DASHBOARD_DRILLABLE=true
LARAVEL_LOGGER_LOG_RECORD_FAILURES_TO_FILE=true
LARAVEL_LOGGER_FLASH_MESSAGE_BLADE_ENABLED=false
LARAVEL_LOGGER_JQUERY_CDN_ENABLED=false
LARAVEL_LOGGER_JQUERY_CDN_URL=https://code.jquery.com/jquery-2.2.4.min.js
LARAVEL_LOGGER_BLADE_CSS_PLACEMENT_ENABLED=true
LARAVEL_LOGGER_BLADE_JS_PLACEMENT_ENABLED=true
LARAVEL_LOGGER_BOOTSTRAP_JS_CDN_ENABLED=false
LARAVEL_LOGGER_BOOTSTRAP_JS_CDN_URL=https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js
LARAVEL_LOGGER_FONT_AWESOME_CDN_ENABLED=false
LARAVEL_LOGGER_FONT_AWESOME_CDN_URL=https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css
LARAVEL_LOGGER_BOOTSTRAP_CSS_CDN_ENABLED=false
LARAVEL_LOGGER_BOOTSTRAP_CSS_CDN_URL=https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css
LARAVEL_BLOCKER_USER_MODEL=App\Models\User
LARAVEL_BLOCKER_AUTH_ENABLED=true
LARAVEL_BLOCKER_ROLES_ENABLED=true
LARAVEL_BLOCKER_FLASH_MESSAGES_ENABLED=false
LARAVEL_BLOCKER_JQUERY_CDN_ENABLED=false
LARAVEL_BLOCKER_BLADE_PLACEMENT_CSS='template_linked_css'
LARAVEL_BLOCKER_BLADE_PLACEMENT_JS='footer_scripts'
LARAVEL_BLOCKER_USE_TYPES_SEED_PUBLISHED=true
LARAVEL_BLOCKER_USE_ITEMS_SEED_PUBLISHED=true
# Roles Default Models
ROLES_DEFAULT_ROLE_MODEL=jeremykenedy\LaravelRoles\Models\Role
ROLES_DEFAULT_PERMISSION_MODEL=jeremykenedy\LaravelRoles\Models\Permission
# Roles database information
ROLES_DATABASE_CONNECTION=null
# Roles Misc Settings
ROLES_DEFAULT_SEPARATOR='.'
# Roles GUI Settings
ROLES_GUI_ENABLED=true
ROLES_GUI_AUTH_ENABLED=true
ROLES_GUI_MIDDLEWARE_ENABLED=true
ROLES_GUI_MIDDLEWARE='role:admin'
ROLES_GUI_BLADE_EXTENDED='layouts.app'
ROLES_GUI_TITLE_EXTENDED='template_title'
ROLES_GUI_LARAVEL_ROLES_ENABLED=true
ROLES_GUI_DATATABLES_JS_ENABLED=false
ROLES_GUI_FLASH_MESSAGES_ENABLED=false
ROLES_GUI_BLADE_PLACEMENT_CSS=template_linked_css
ROLES_GUI_BLADE_PLACEMENT_JS=footer_scripts
# Google Analytics - If blank it will not render, default is false
GOOGLE_ANALYTICS_ID=
#GOOGLE_ANALYTICS_ID='UA-XXXXXXXX-X'
# NOTE: YOU CAN REMOVE THE KEY CALL IN app.blade.php IF YOU GET A POP UP AND DO NOT WANT TO SETUP A KEY FOR DEV
# Google Maps API v3 Key - https://developers.google.com/maps/documentation/javascript/get-api-key#get-an-api-key
GOOGLEMAPS_API_STATUS=true
GOOGLEMAPS_API_KEY=YOURGOOGLEMAPSkeyHERE
# https://www.google.com/recaptcha/admin#list
ENABLE_RECAPTCHA=true
RE_CAP_SITE=YOURGOOGLECAPTCHAsitekeyHERE
RE_CAP_SECRET=YOURGOOGLECAPTCHAsecretHERE
# https://console.developers.google.com/ - NEED OAUTH CREDS
GOOGLE_ID=YOURGOOGLEPLUSidHERE
GOOGLE_SECRET=YOURGOOGLEPLUSsecretHERE
GOOGLE_REDIRECT=https://YOURWEBURLHERE.COM/social/handle/google
# https://developers.facebook.com/
FB_ID=YOURFACEBOOKidHERE
FB_SECRET=YOURFACEBOOKsecretHERE
FB_REDIRECT=https://YOURWEBURLHERE.COM/social/handle/facebook
# https://apps.twitter.com/
TW_ID=YOURTWITTERidHERE
TW_SECRET=YOURTWITTERkeyHERE
TW_REDIRECT=https://YOURWEBURLHERE.COM/social/handle/twitter
# https://github.com/settings/applications/new
GITHUB_ID=YOURIDHERE
GITHUB_SECRET=YOURSECRETHERE
GITHUB_URL=https://YOURWEBURLHERE.COM/social/handle/github
# https://developers.google.com/youtube/v3/getting-started
YOUTUBE_KEY=YOURKEYHERE
YOUTUBE_SECRET=YOURSECRETHERE
YOUTUBE_REDIRECT_URI=https://YOURWEBURLHERE.COM/social/handle/youtube
# https://dev.twitch.tv/docs/authentication/
TWITCH_KEY=YOURKEYHERE
TWITCH_SECRET=YOURSECRETHERE
TWITCH_REDIRECT_URI=https://YOURWEBURLHERE.COM/social/handle/twitch
# https://instagram.com/developer/register/
INSTAGRAM_KEY=YOURKEYHERE
INSTAGRAM_SECRET=YOURSECRETHERE
INSTAGRAM_REDIRECT_URI=https://YOURWEBURLHERE.COM/social/handle/instagram
# https://basecamp.com/
# https://github.com/basecamp/basecamp-classic-api
37SIGNALS_KEY=YOURKEYHERE
37SIGNALS_SECRET=YOURSECRETHERE
37SIGNALS_REDIRECT_URI=https://YOURWEBURLHERE.COM/social/handle/37signals
.env
file.laravel-auth
├── .editorconfig
├── .env
├── .env.example
├── .env.travis
├── .gitattributes
├── .github
│ ├── FUNDING.yml
│ └── ISSUE_TEMPLATE
│ ├── bug_report.md
│ ├── feature_request.md
│ └── project-questions-and-help.md
├── .gitignore
├── .phpunit.result.cache
├── .styleci.yml
├── .travis.yml
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── _config.yml
├── app
│ ├── Console
│ │ ├── Commands
│ │ │ └── DeleteExpiredActivations.php
│ │ └── Kernel.php
│ ├── Exceptions
│ │ └── Handler.php
│ ├── Http
│ │ ├── Controllers
│ │ │ ├── AdminDetailsController.php
│ │ │ ├── Auth
│ │ │ │ ├── ActivateController.php
│ │ │ │ ├── ForgotPasswordController.php
│ │ │ │ ├── LoginController.php
│ │ │ │ ├── RegisterController.php
│ │ │ │ ├── ResetPasswordController.php
│ │ │ │ └── SocialController.php
│ │ │ ├── Controller.php
│ │ │ ├── ProfilesController.php
│ │ │ ├── RestoreUserController.php
│ │ │ ├── SoftDeletesController.php
│ │ │ ├── TermsController.php
│ │ │ ├── ThemesManagementController.php
│ │ │ ├── UserController.php
│ │ │ ├── UsersManagementController.php
│ │ │ └── WelcomeController.php
│ │ ├── Kernel.php
│ │ ├── Middleware
│ │ │ ├── Authenticate.php
│ │ │ ├── CheckCurrentUser.php
│ │ │ ├── CheckForMaintenanceMode.php
│ │ │ ├── CheckIsUserActivated.php
│ │ │ ├── EncryptCookies.php
│ │ │ ├── RedirectIfAuthenticated.php
│ │ │ ├── TrimStrings.php
│ │ │ ├── TrustProxies.php
│ │ │ └── VerifyCsrfToken.php
│ │ ├── Requests
│ │ │ ├── DeleteUserAccount.php
│ │ │ ├── UpdateUserPasswordRequest.php
│ │ │ └── UpdateUserProfile.php
│ │ └── ViewComposers
│ │ └── ThemeComposer.php
│ ├── Logic
│ │ ├── Activation
│ │ │ └── ActivationRepository.php
│ │ └── Macros
│ │ └── HtmlMacros.php
│ ├── Mail
│ │ └── ExceptionOccured.php
│ ├── Models
│ │ ├── Activation.php
│ │ ├── Profile.php
│ │ ├── Social.php
│ │ ├── Theme.php
│ │ └── User.php
│ ├── Notifications
│ │ ├── SendActivationEmail.php
│ │ └── SendGoodbyeEmail.php
│ ├── Providers
│ │ ├── AppServiceProvider.php
│ │ ├── AuthServiceProvider.php
│ │ ├── BroadcastServiceProvider.php
│ │ ├── ComposerServiceProvider.php
│ │ ├── EventServiceProvider.php
│ │ ├── LocalEnvironmentServiceProvider.php
│ │ ├── MacroServiceProvider.php
│ │ └── RouteServiceProvider.php
│ └── Traits
│ ├── ActivationTrait.php
│ ├── CaptchaTrait.php
│ └── CaptureIpTrait.php
├── artisan
├── bootstrap
│ ├── app.php
│ ├── autoload.php
│ └── cache
│ ├── .gitignore
│ ├── packages.php
│ └── services.php
├── composer.json
├── composer.lock
├── config
│ ├── app.php
│ ├── auth.php
│ ├── broadcasting.php
│ ├── cache.php
│ ├── cors.php
│ ├── database.php
│ ├── debugbar.php
│ ├── exceptions.php
│ ├── filesystems.php
│ ├── gravatar.php
│ ├── hashing.php
│ ├── laravel2step.php
│ ├── laravelPhpInfo.php
│ ├── laravelblocker.php
│ ├── logging.php
│ ├── mail.php
│ ├── queue.php
│ ├── roles.php
│ ├── services.php
│ ├── session.php
│ ├── settings.php
│ ├── usersmanagement.php
│ └── view.php
├── database
│ ├── .gitignore
│ ├── factories
│ │ └── ModelFactory.php
│ ├── migrations
│ │ ├── 2014_10_12_000000_create_users_table.php
│ │ ├── 2014_10_12_100000_create_password_resets_table.php
│ │ ├── 2016_01_15_105324_create_roles_table.php
│ │ ├── 2016_01_15_114412_create_role_user_table.php
│ │ ├── 2016_01_26_115212_create_permissions_table.php
│ │ ├── 2016_01_26_115523_create_permission_role_table.php
│ │ ├── 2016_02_09_132439_create_permission_user_table.php
│ │ ├── 2017_03_09_082449_create_social_logins_table.php
│ │ ├── 2017_03_09_082526_create_activations_table.php
│ │ ├── 2017_03_20_213554_create_themes_table.php
│ │ ├── 2017_03_21_042918_create_profiles_table.php
│ │ ├── 2017_12_09_070937_create_two_step_auth_table.php
│ │ ├── 2019_02_19_032636_create_laravel_blocker_types_table.php
│ │ ├── 2019_02_19_045158_create_laravel_blocker_table.php
│ │ └── 2019_08_19_000000_create_failed_jobs_table.php
│ └── seeds
│ ├── BlockedItemsTableSeeder.php
│ ├── BlockedTypeTableSeeder.php
│ ├── ConnectRelationshipsSeeder.php
│ ├── DatabaseSeeder.php
│ ├── PermissionsTableSeeder.php
│ ├── RolesTableSeeder.php
│ ├── ThemesTableSeeder.php
│ └── UsersTableSeeder.php
├── license.svg
├── package-lock.json
├── package.json
├── phpunit.xml
├── public
│ ├── .htaccess
│ ├── css
│ │ ├── app.css
│ │ └── laravel2step
│ │ ├── app.css
│ │ └── app.min.css
│ ├── favicon.ico
│ ├── fonts
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.svg
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ ├── fontawesome-webfont.woff2
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.svg
│ │ ├── glyphicons-halflings-regular.ttf
│ │ ├── glyphicons-halflings-regular.woff
│ │ └── glyphicons-halflings-regular.woff2
│ ├── images
│ │ ├── wink.png
│ │ └── wink.svg
│ ├── index.php
│ ├── js
│ │ ├── app.99230f42ad184f498ce6.js
│ │ ├── app.js
│ │ └── app.js.LICENSE.txt
│ ├── mix-manifest.json
│ ├── robots.txt
│ └── web.config
├── resources
│ ├── assets
│ │ ├── js
│ │ │ ├── app.js
│ │ │ ├── bootstrap.js
│ │ │ └── components
│ │ │ ├── ExampleComponent.vue
│ │ │ └── UsersCount.vue
│ │ ├── sass
│ │ │ ├── _avatar.scss
│ │ │ ├── _badges.scss
│ │ │ ├── _bootstrap-social.scss
│ │ │ ├── _buttons.scss
│ │ │ ├── _forms.scss
│ │ │ ├── _helpers.scss
│ │ │ ├── _hideShowPassword.scss
│ │ │ ├── _lists.scss
│ │ │ ├── _logs.scss
│ │ │ ├── _margins.scss
│ │ │ ├── _mixins.scss
│ │ │ ├── _modals.scss
│ │ │ ├── _panels.scss
│ │ │ ├── _password.scss
│ │ │ ├── _socials.scss
│ │ │ ├── _typography.scss
│ │ │ ├── _user-profile.scss
│ │ │ ├── _variables.scss
│ │ │ ├── _visibility.scss
│ │ │ ├── _wells.scss
│ │ │ └── app.scss
│ │ └── scss
│ │ └── laravel2step
│ │ ├── _animations.scss
│ │ ├── _mixins.scss
│ │ ├── _modals.scss
│ │ ├── _variables.scss
│ │ ├── _verification.scss
│ │ └── app.scss
│ ├── lang
│ │ ├── en
│ │ │ ├── auth.php
│ │ │ ├── emails.php
│ │ │ ├── forms.php
│ │ │ ├── modals.php
│ │ │ ├── pagination.php
│ │ │ ├── passwords.php
│ │ │ ├── permsandroles.php
│ │ │ ├── profile.php
│ │ │ ├── socials.php
│ │ │ ├── terms.php
│ │ │ ├── themes.php
│ │ │ ├── titles.php
│ │ │ ├── usersmanagement.php
│ │ │ └── validation.php
│ │ ├── fr
│ │ │ ├── auth.php
│ │ │ ├── emails.php
│ │ │ ├── forms.php
│ │ │ ├── modals.php
│ │ │ ├── pagination.php
│ │ │ ├── passwords.php
│ │ │ ├── permsandroles.php
│ │ │ ├── profile.php
│ │ │ ├── socials.php
│ │ │ ├── titles.php
│ │ │ ├── usersmanagement.php
│ │ │ └── validation.php
│ │ └── pt-br
│ │ ├── auth.php
│ │ ├── emails.php
│ │ ├── forms.php
│ │ ├── modals.php
│ │ ├── pagination.php
│ │ ├── passwords.php
│ │ ├── permsandroles.php
│ │ ├── profile.php
│ │ ├── socials.php
│ │ ├── themes.php
│ │ ├── titles.php
│ │ ├── usersmanagement.php
│ │ └── validation.php
│ └── views
│ ├── auth
│ │ ├── activation.blade.php
│ │ ├── exceeded.blade.php
│ │ ├── login.blade.php
│ │ ├── passwords
│ │ │ ├── email.blade.php
│ │ │ └── reset.blade.php
│ │ └── register.blade.php
│ ├── emails
│ │ └── exception.blade.php
│ ├── errors
│ │ ├── 403.blade.php
│ │ ├── 404.blade.php
│ │ ├── 500.blade.php
│ │ └── 503.blade.php
│ ├── home.blade.php
│ ├── layouts
│ │ └── app.blade.php
│ ├── modals
│ │ ├── modal-delete.blade.php
│ │ ├── modal-form.blade.php
│ │ └── modal-save.blade.php
│ ├── pages
│ │ ├── admin
│ │ │ ├── active-users.blade.php
│ │ │ ├── home.blade.php
│ │ │ └── route-details.blade.php
│ │ ├── public
│ │ │ └── terms.blade.php
│ │ ├── status.blade.php
│ │ └── user
│ │ └── home.blade.php
│ ├── panels
│ │ └── welcome-panel.blade.php
│ ├── partials
│ │ ├── errors.blade.php
│ │ ├── form-status.blade.php
│ │ ├── nav.blade.php
│ │ ├── search-users-form.blade.php
│ │ ├── socials-icons.blade.php
│ │ ├── socials.blade.php
│ │ ├── status-panel.blade.php
│ │ └── status.blade.php
│ ├── profiles
│ │ ├── edit.blade.php
│ │ └── show.blade.php
│ ├── scripts
│ │ ├── check-changed.blade.php
│ │ ├── datatables.blade.php
│ │ ├── delete-modal-script.blade.php
│ │ ├── form-modal-script.blade.php
│ │ ├── gmaps-address-lookup-api3.blade.php
│ │ ├── google-maps-geocode-and-map.blade.php
│ │ ├── save-modal-script.blade.php
│ │ ├── search-users.blade.php
│ │ ├── toggleStatus.blade.php
│ │ ├── tooltips.blade.php
│ │ └── user-avatar-dz.blade.php
│ ├── themesmanagement
│ │ ├── add-theme.blade.php
│ │ ├── edit-theme.blade.php
│ │ ├── show-theme.blade.php
│ │ └── show-themes.blade.php
│ ├── usersmanagement
│ │ ├── create-user.blade.php
│ │ ├── edit-user.blade.php
│ │ ├── show-deleted-user.blade.php
│ │ ├── show-deleted-users.blade.php
│ │ ├── show-user.blade.php
│ │ └── show-users.blade.php
│ └── welcome.blade.php
├── routes
│ ├── api.php
│ ├── channels.php
│ ├── console.php
│ └── web.php
├── server.php
└── webpack.mix.js
brew install tree
tree -a -I '.git|node_modules|vendor|storage|tests'
Before opening an issue there are a couple of considerations:
Laravel-auth is licensed under the MIT license. Enjoy!
Laravel 是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。 功能特点 1、语法更富有表现力 你知道下面这行代码里 “true” 代表什么意思么? $uri = Uri::create(‘some/uri’, array(), array(), tr
我需要空间/Laravel权限的帮助。当我试图分配它给我错误哎呀,看起来像出了问题。 错误 Connection.php第761行中的QueryExcema:SQLSTATE[23000]:完整性约束冲突:1048列role_id不能为空(SQL:插入到(,)值(9,))
为什么在larawer上创建一个新项目后,每次我试图刷新控制台中的迁移时,我都会看到它 [Illuminate\Database\QueryException]SQLState[42000]:语法错误或访问冲突:1071指定的键太长;最大密钥长度为767字节es(SQL:alter table添加unique()) [PDOException]SQLState[42S01]:基表或视图已存在:10
Laravel 作为现在最流行的 PHP 框架,其中的知识较多,所以单独拿出来写一篇。 简述 Laravel 的生命周期 Laravel 采用了单一入口模式,应用的所有请求入口都是 public/index.php 文件。 注册类文件自动加载器 : Laravel通过 composer 进行依赖管理,无需开发者手动导入各种类文件,而由自动加载器自行导入。 创建服务容器:从 bootstrap/ap
简介 Laravel Scout 为 Eloquent 模型 全文搜索提供了简单的,基于驱动的解决方案。通过使用模型观察者,Scout 会自动同步 Eloquent 记录的搜索索引。 目前,Scout 自带一个 Algolia 驱动;不过,编写自定义驱动很简单, 你可以轻松的通过自己的搜索实现来扩展 Scout。 安装 首先,通过 Composer 包管理器来安装 Scout: composer
简介 Laravel 致力于让整个 PHP 开发体验变得愉快, 包括你的本地开发环境。 Vagrant 提供了一种简单,优雅的方式来管理和配置虚拟机。 Laravel Homestead 是一个官方预封装的 Vagrant box,它为你提供了一个完美的开发环境,而无需在本地机器安装 PHP 、Web 服务器和其他服务器软件。不用担心会搞乱你的操作系统!Vagrant boxes 是一次性的。如果