diff --git a/app/Models/User.php b/app/Models/User.php index 0c72af5e..b411273a 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -11,12 +11,13 @@ use Kyslik\ColumnSortable\Sortable; use App\Notifications\ResetPassword; use Illuminate\Support\Facades\Storage; use Illuminate\Notifications\Notifiable; +use Laravel\Fortify\TwoFactorAuthenticatable; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { - use Notifiable, Billable, Sortable, HasFactory, HasApiTokens; + use Notifiable, Billable, Sortable, HasFactory, HasApiTokens, TwoFactorAuthenticatable; protected $guarded = [ 'id', diff --git a/config/fortify.php b/config/fortify.php index b5c832a2..823465c0 100644 --- a/config/fortify.php +++ b/config/fortify.php @@ -136,8 +136,8 @@ return [ // Features::emailVerification(), Features::updateProfileInformation(), //Features::updatePasswords(), - /*Features::twoFactorAuthentication([ + Features::twoFactorAuthentication([ 'confirmPassword' => true, - ]),*/ + ]), ], ]; diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 4ab29bfd..a1d5fda5 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,76 +1,129 @@ { - "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~2fac28cc.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~2fac28cc.js?id=59d8a92b461069b2d8ef", - "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~5f8db287.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~5f8db287.js?id=da9787176357b5821f88", - "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=dfc34718027ffe49c095", - "/chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js?id=78490a539df6de210807", - "/chunks/admin~chunks/platform~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/shared.js?id=6db60bf5154ed8946420", - "/chunks/files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared/file-browser~chunks/shared/single-file.js?id=78d379b1b282c3ad5c0c", - "/chunks/files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared/file-browser.js?id=c6362b7ef3e9b06d3af7", - "/chunks/not-found.js": "/chunks/not-found.js?id=3278798d98bd131aa379", - "/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=dbfcbb7580f69474cc13", - "/vendors~chunks/platform~chunks/shared.js": "/vendors~chunks/platform~chunks/shared.js?id=16e4937273d68f83c37f", - "/js/main.js": "/js/main.js?id=1ced39466ba657ce3e16", - "/css/app.css": "/css/app.css?id=a8f94d0c5a6f4a1185b1", - "/chunks/admin.js": "/chunks/admin.js?id=c23b5f524dd386d797e5", - "/chunks/admin-account.js": "/chunks/admin-account.js?id=a73cbe625776f823eb4e", - "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=1542b65e6edae59f17aa", - "/chunks/app-billings.js": "/chunks/app-billings.js?id=15318dba11818d6ec888", - "/chunks/app-email.js": "/chunks/app-email.js?id=b023f73218dda4abd604", - "/chunks/app-index.js": "/chunks/app-index.js?id=08b7878a3fcd087c23b3", - "/chunks/app-language.js": "/chunks/app-language.js?id=ad245f54b99ec8979f9e", - "/chunks/app-others.js": "/chunks/app-others.js?id=256f8a571e9535774643", - "/chunks/app-payments.js": "/chunks/app-payments.js?id=b57048c4667935499d3e", - "/chunks/app-settings.js": "/chunks/app-settings.js?id=c6f95c5841c36de9d030", - "/chunks/app-setup.js": "/chunks/app-setup.js?id=c0898f22c12ee8a56916", - "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=622b5dca6425427f7ea0", - "/chunks/contact-us.js": "/chunks/contact-us.js?id=9415844c1627d307d951", - "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=ad4ac6e1e79602cbb929", - "/chunks/dashboard.js": "/chunks/dashboard.js?id=db35f7a287b6407fc4af", - "/chunks/database.js": "/chunks/database.js?id=669e7798dcc456197402", - "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=c53bdc4a88bf3f2e5434", - "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=52cde925b9687de4c29a", - "/chunks/files.js": "/chunks/files.js?id=0fa05841bb3895d2d5e5", - "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=0708aa3e04e6ed11c91d", - "/chunks/homepage.js": "/chunks/homepage.js?id=44552c231f6791295903", - "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=922ecf4d086b03abfc04", - "/chunks/invoices.js": "/chunks/invoices.js?id=85b17b9371f4df37c00a", - "/chunks/page-edit.js": "/chunks/page-edit.js?id=7e04b66e4bccb47e7f3f", - "/chunks/pages.js": "/chunks/pages.js?id=76341f611821d93f1696", - "/chunks/plan.js": "/chunks/plan.js?id=d44c79f456ece7ed20ba", - "/chunks/plan-create.js": "/chunks/plan-create.js?id=f14b6474cc894199f962", - "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=82741fb5261f08150514", - "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=8e901b7cce8fabec9042", - "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=700253b16769e8270c73", - "/chunks/plans.js": "/chunks/plans.js?id=dd7e195bb66f245cebbd", - "/chunks/platform.js": "/chunks/platform.js?id=f7073145d3e27be2c880", - "/chunks/profile.js": "/chunks/profile.js?id=bd661b08717158c5af9e", - "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=333af0b6deb880990f39", - "/chunks/settings.js": "/chunks/settings.js?id=7726657c717fa7650d10", - "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=08cc16a560d5cc9b25b7", - "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=5ef85da047b11e2f1a21", - "/chunks/settings-password.js": "/chunks/settings-password.js?id=19b5f0850ba9d6aa049a", - "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=7cfbeae7706827cd858e", - "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=c4210c768fddec3ccf9f", - "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=a7c2580bf4280ca3c76b", - "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=d60972a2216523642850", - "/chunks/shared.js": "/chunks/shared.js?id=e72e37ffad23a1ea2a8e", - "/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=86820a408438c3513b20", - "/chunks/shared/file-browser.js": "/chunks/shared/file-browser.js?id=74d47dd07002086ba1de", - "/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=03fb36b0d38a3218221f", - "/chunks/sign-in.js": "/chunks/sign-in.js?id=6a401ac37ac49a729e04", - "/chunks/sign-up.js": "/chunks/sign-up.js?id=f26bca8e48b5cfb69f30", - "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=cd44b6cf8631f690a75d", - "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=4cdc01a909e277284b1d", - "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=418145ac6ba4a4ba2e4a", - "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=98181a3cdcc9cc6e55c2", - "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=2eee581bb1d2586b9249", - "/chunks/user.js": "/chunks/user.js?id=290b4b63ed5a10a5ca3c", - "/chunks/user-create.js": "/chunks/user-create.js?id=2bfca881534622e3aa5f", - "/chunks/user-delete.js": "/chunks/user-delete.js?id=dc708437ba1e5ebc0a0d", - "/chunks/user-detail.js": "/chunks/user-detail.js?id=70bac25962505a1eb468", - "/chunks/user-invoices.js": "/chunks/user-invoices.js?id=5f5cee4fbc2d5f122114", - "/chunks/user-password.js": "/chunks/user-password.js?id=3214eb9dadcbeb1e685f", - "/chunks/user-storage.js": "/chunks/user-storage.js?id=bfecceeadc0a2a0faf64", - "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=724f2551c1945e1071e2", - "/chunks/users.js": "/chunks/users.js?id=bb902543025cdf7a79f2" + "/js/main.js": "/js/main.js", + "/css/app.css": "/css/app.css", + "/chunks/admin.js": "/chunks/admin.js?id=db23a3d539fec4b03c65", + "/chunks/admin-account.js": "/chunks/admin-account.js?id=ca3bdda58d0bb26a896c", + "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js?id=789a8508d6219be0904d", + "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~cf616679.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~cf616679.js?id=bf8c299c1121b1370723", + "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js?id=1d83683f5afa0abb114d", + "/chunks/admin~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js?id=e1f223fd5412173ed827", + "/chunks/admin~chunks/files~chunks/settings~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared/file-browser.js?id=2647d05d2a105cac3f0f", + "/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=ae0bb7e684c857693aa8", + "/chunks/admin~chunks/platform~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/shared.js?id=ea0cb4ec8487af4776eb", + "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=3b66bd631241fe5466ed", + "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js?id=69d6fefe404b9ec4f0de", + "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=07a6859a69c14d4bc289", + "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js?id=b8f2628bc5946089d58a", + "/chunks/app-billings.js": "/chunks/app-billings.js?id=8db305db2a42878cb243", + "/chunks/app-email.js": "/chunks/app-email.js?id=21f1982949085b513cd4", + "/chunks/app-index.js": "/chunks/app-index.js?id=ed459a1ea3fa89d3de30", + "/chunks/app-language.js": "/chunks/app-language.js?id=3e30d578c3d751351eb9", + "/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pag~824d674f.js": "/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pag~824d674f.js?id=53e545b823ce2e687b31", + "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~934b6779.js": "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~934b6779.js?id=e3df08bfa100e0216a95", + "/chunks/app-others.js": "/chunks/app-others.js?id=dfca041b0f77f19baa1e", + "/chunks/app-payments.js": "/chunks/app-payments.js?id=54d9bf8fc371179f295b", + "/chunks/app-settings.js": "/chunks/app-settings.js?id=7036abc45d63af4fe972", + "/chunks/app-setup.js": "/chunks/app-setup.js?id=94f462aaa7a7e7dcd03d", + "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=d25da896180b673d0ff1", + "/chunks/contact-us.js": "/chunks/contact-us.js?id=f317578eda4c05b98d7f", + "/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js": "/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js?id=023e6b0ad58fa1dc5bc6", + "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=86c558e2cb256bda86c3", + "/chunks/dashboard.js": "/chunks/dashboard.js?id=e2a93e2ceb83cab77b77", + "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js": "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js?id=8e86179595c935837731", + "/chunks/database.js": "/chunks/database.js?id=b86430381b515d8d220a", + "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=2167671fe3099f75ecfe", + "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=9c1986d846fdd73bb872", + "/chunks/files.js": "/chunks/files.js?id=b852156f00c07bcd55aa", + "/chunks/files~chunks/platform~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared/file-browser.js?id=c1af7637432594f4a242", + "/chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js?id=e5133c50af3101591521", + "/chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js?id=39824e4246c795c46ed9", + "/chunks/files~chunks/settings-subscription~chunks/shared/file-browser~chunks/user-subscription.js": "/chunks/files~chunks/settings-subscription~chunks/shared/file-browser~chunks/user-subscription.js?id=fdeb2974fe93fe48a7c0", + "/chunks/files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared/file-browser.js?id=f5af41b5b9e225c52b23", + "/chunks/files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared/file-browser~chunks/shared/single-file.js?id=59ac7980d3f5884ac0d3", + "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=ebcbbc0115c1589dcca5", + "/chunks/homepage.js": "/chunks/homepage.js?id=b62a9ad724d34bcbc44d", + "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=63a8701083fa67e7c689", + "/chunks/invoices.js": "/chunks/invoices.js?id=b1ba41c331f013837e2d", + "/chunks/not-found.js": "/chunks/not-found.js?id=e795bd0f98216a25dc06", + "/chunks/page-edit.js": "/chunks/page-edit.js?id=88b6d026ec4d3794aa1a", + "/chunks/pages.js": "/chunks/pages.js?id=2373f18eb236bf6775fa", + "/chunks/plan.js": "/chunks/plan.js?id=fd5882a90b4705a172f2", + "/chunks/plan-create.js": "/chunks/plan-create.js?id=47c71e0ae08db8d11c52", + "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=0e8ea332703dcae2fbdd", + "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=2b856bf8204afcea4078", + "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=bc757f00e838ebeddad0", + "/chunks/plans.js": "/chunks/plans.js?id=36ebc380b6e7773a04ff", + "/chunks/platform.js": "/chunks/platform.js?id=5a0101097d87433a7986", + "/chunks/platform~chunks/shared.js": "/chunks/platform~chunks/shared.js?id=2224a6de276a2edc346b", + "/chunks/profile.js": "/chunks/profile.js?id=20236b41dd811bfd492c", + "/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=f532862b4c362de67360", + "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=f708db10063dd6c0a864", + "/chunks/settings.js": "/chunks/settings.js?id=f3273efbf6b6d723b8ea", + "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=aa81750b0d9e206d5ee9", + "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=3810f765b5305c2ce25c", + "/chunks/settings-password.js": "/chunks/settings-password.js?id=6a2aa5bcfa99fde75a77", + "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=c3c536eec45ffbbc77f4", + "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=ee860273cc027ffa83c1", + "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=d15d2096bcf308b21a50", + "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=d90814559910a424902d", + "/chunks/shared.js": "/chunks/shared.js?id=de5b7595a352f2614b55", + "/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=238c362399a4018549bd", + "/chunks/shared/file-browser.js": "/chunks/shared/file-browser.js?id=d630c473dc6b751ec50f", + "/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=040a7241ea133456200c", + "/chunks/sign-in.js": "/chunks/sign-in.js?id=b2e97fd8b52b40b8c4af", + "/chunks/sign-up.js": "/chunks/sign-up.js?id=f5634301e476029d6fa1", + "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=20721ca146c27a67bccd", + "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=d21cbdb1cee9197323c3", + "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=de43eac3b1627e00424d", + "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=114cd615807f23990197", + "/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=75510b0f500e49b263d1", + "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=e75ca6ec0b01b9bead51", + "/chunks/user.js": "/chunks/user.js?id=a73470995a4ae3fd2881", + "/chunks/user-create.js": "/chunks/user-create.js?id=b051dfa4977253898319", + "/chunks/user-delete.js": "/chunks/user-delete.js?id=a0782d05787effe95383", + "/chunks/user-detail.js": "/chunks/user-detail.js?id=ff37a70a549fccc51dfc", + "/chunks/user-invoices.js": "/chunks/user-invoices.js?id=fb09652ecb27af5f3b10", + "/chunks/user-password.js": "/chunks/user-password.js?id=c6b39bbd4e2cf6175864", + "/chunks/user-storage.js": "/chunks/user-storage.js?id=bef79e67371f255f883e", + "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=c64145dfa85586f564b0", + "/chunks/users.js": "/chunks/users.js?id=0652fa00a2b955a7c591", + "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~2fac28cc.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~2fac28cc.js?id=57c854adb91ed9a9d088", + "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~d5e36d91.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~d5e36d91.js?id=170765b4fd923b62195c", + "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js?id=ca01bfe1656f58710763", + "/vendors~chunks/platform~chunks/shared.js": "/vendors~chunks/platform~chunks/shared.js?id=eb141834bc24b72d8e92", + "/chunks/sign-in.8944159873fb3ac13fef.hot-update.js": "/chunks/sign-in.8944159873fb3ac13fef.hot-update.js", + "/chunks/sign-in.75cb3d2cf12e3f45d175.hot-update.js": "/chunks/sign-in.75cb3d2cf12e3f45d175.hot-update.js", + "/chunks/sign-in.729bff4dd920e0f1f41a.hot-update.js": "/chunks/sign-in.729bff4dd920e0f1f41a.hot-update.js", + "/chunks/sign-in.90669c169f16b57043eb.hot-update.js": "/chunks/sign-in.90669c169f16b57043eb.hot-update.js", + "/chunks/sign-in.50b9315adc692de91e6e.hot-update.js": "/chunks/sign-in.50b9315adc692de91e6e.hot-update.js", + "/chunks/sign-in.715ff1e6dcdaa4910de3.hot-update.js": "/chunks/sign-in.715ff1e6dcdaa4910de3.hot-update.js", + "/chunks/sign-in.8a6a097ff7b48e093939.hot-update.js": "/chunks/sign-in.8a6a097ff7b48e093939.hot-update.js", + "/chunks/sign-in.46d30c932b3d8d9dbd95.hot-update.js": "/chunks/sign-in.46d30c932b3d8d9dbd95.hot-update.js", + "/chunks/sign-in.a59d0f701426c969641c.hot-update.js": "/chunks/sign-in.a59d0f701426c969641c.hot-update.js", + "/chunks/sign-in.2e40826ff67c58c6ed3e.hot-update.js": "/chunks/sign-in.2e40826ff67c58c6ed3e.hot-update.js", + "/chunks/sign-in.84c5dfa58c23e943e8de.hot-update.js": "/chunks/sign-in.84c5dfa58c23e943e8de.hot-update.js", + "/chunks/sign-in.7c45a9da1a784ba0fb28.hot-update.js": "/chunks/sign-in.7c45a9da1a784ba0fb28.hot-update.js", + "/chunks/sign-in.277ba1e57ae1b9532188.hot-update.js": "/chunks/sign-in.277ba1e57ae1b9532188.hot-update.js", + "/chunks/sign-in.a2a4c8724323f35fe2fc.hot-update.js": "/chunks/sign-in.a2a4c8724323f35fe2fc.hot-update.js", + "/chunks/sign-in.1ae99812bef1c257f111.hot-update.js": "/chunks/sign-in.1ae99812bef1c257f111.hot-update.js", + "/chunks/sign-in.fcb40ce9e15b9da70236.hot-update.js": "/chunks/sign-in.fcb40ce9e15b9da70236.hot-update.js", + "/chunks/sign-in.dedc702a2543a419472a.hot-update.js": "/chunks/sign-in.dedc702a2543a419472a.hot-update.js", + "/chunks/sign-in.d107b8c7fd8cd66a8c82.hot-update.js": "/chunks/sign-in.d107b8c7fd8cd66a8c82.hot-update.js", + "/chunks/sign-in.4f7552d8551ef72b0d2a.hot-update.js": "/chunks/sign-in.4f7552d8551ef72b0d2a.hot-update.js", + "/chunks/sign-in.38379efb36005d0c04b0.hot-update.js": "/chunks/sign-in.38379efb36005d0c04b0.hot-update.js", + "/chunks/sign-in.10ccd5e13b40458a9922.hot-update.js": "/chunks/sign-in.10ccd5e13b40458a9922.hot-update.js", + "/chunks/sign-in.ad5a33847ca334061269.hot-update.js": "/chunks/sign-in.ad5a33847ca334061269.hot-update.js", + "/chunks/sign-in.8145c52ffe519bd17d37.hot-update.js": "/chunks/sign-in.8145c52ffe519bd17d37.hot-update.js", + "/chunks/sign-in.0ee1b8ac9013dccd4ec9.hot-update.js": "/chunks/sign-in.0ee1b8ac9013dccd4ec9.hot-update.js", + "/chunks/sign-in.4eb230d53fde24d16747.hot-update.js": "/chunks/sign-in.4eb230d53fde24d16747.hot-update.js", + "/chunks/sign-in.f1970e090d9245380a59.hot-update.js": "/chunks/sign-in.f1970e090d9245380a59.hot-update.js", + "/chunks/sign-in.3464c74313f726061ba7.hot-update.js": "/chunks/sign-in.3464c74313f726061ba7.hot-update.js", + "/chunks/sign-in.c73835f25ea1f5db1e92.hot-update.js": "/chunks/sign-in.c73835f25ea1f5db1e92.hot-update.js", + "/chunks/sign-in.18b3afbd7f399ccd92c4.hot-update.js": "/chunks/sign-in.18b3afbd7f399ccd92c4.hot-update.js", + "/chunks/sign-in.78bc71b296288b1cfc7b.hot-update.js": "/chunks/sign-in.78bc71b296288b1cfc7b.hot-update.js", + "/chunks/sign-in.c1dfe680eb1d42852c82.hot-update.js": "/chunks/sign-in.c1dfe680eb1d42852c82.hot-update.js", + "/chunks/sign-in.4ff61daab837f57cd09e.hot-update.js": "/chunks/sign-in.4ff61daab837f57cd09e.hot-update.js", + "/chunks/sign-in.40b44068090a59d03897.hot-update.js": "/chunks/sign-in.40b44068090a59d03897.hot-update.js", + "/chunks/sign-in.39496c19f36fda3d8e7b.hot-update.js": "/chunks/sign-in.39496c19f36fda3d8e7b.hot-update.js", + "/chunks/sign-in.23b65a3918af564ccfb7.hot-update.js": "/chunks/sign-in.23b65a3918af564ccfb7.hot-update.js" } diff --git a/resources/js/views/Auth/SignIn.vue b/resources/js/views/Auth/SignIn.vue index 16c6957f..39f57bdd 100644 --- a/resources/js/views/Auth/SignIn.vue +++ b/resources/js/views/Auth/SignIn.vue @@ -61,6 +61,72 @@ + + + + +
+ +

Welcome {{ checkedAccount.name }}

+

Confirm you by 2FA code :

+
+ + + + + {{ errors[0] }} + + + + + You don't know your 2fa code? + + Use recovery code. + + + +
+ +
+ +
+ + + + +
+ +

Welcome {{ checkedAccount.name }}

+

Confirm you by 2FA code :

+
+ + + + + {{ errors[0] }} + + + + +
+ +
+ +
@@ -69,6 +135,7 @@ import {ValidationProvider, ValidationObserver} from 'vee-validate/dist/vee-validate.full' import AuthContent from '@/components/Auth/AuthContent' import AuthButton from '@/components/Auth/AuthButton' + import Spinner from '@/components/FilesView/Spinner' import {required} from 'vee-validate/dist/rules' import {mapGetters} from 'vuex' import {events} from "@/bus" @@ -83,6 +150,7 @@ AuthContent, AuthButton, required, + Spinner, }, computed: { ...mapGetters(['config']), @@ -93,6 +161,8 @@ checkedAccount: undefined, loginPassword: '', loginEmail: '', + twoFactorCode: '', + twoFactorRecoveryCode: '', } }, methods: { @@ -173,16 +243,22 @@ email: this.loginEmail, password: this.loginPassword, }) - .then(() => { + .then((response) => { // End loading this.isLoading = false - // Set login state - this.$store.commit('SET_AUTHORIZED', true) + if(response.data.two_factor) { - // Go to files page - this.$router.push({name: 'Files'}) + this.goToAuthPage('two-factor-authentication') + } else { + + // Set login state + this.$store.commit('SET_AUTHORIZED', true) + + // Go to files page + this.$router.push({name: 'Files'}) + } }) .catch(error => { @@ -197,6 +273,54 @@ this.isLoading = false }) }, + async twoFactorChallenge(recovery) { + + // Check if is normal authentication or recovery + if( !recovery && this.twoFactorCode.length === 6 || recovery && this.twoFactorRecoveryCode.length === 21) { + + this.isLoading = true + + axios. + post('/two-factor-challenge', { + ...(!recovery && {code: this.twoFactorCode}), + ...(recovery && { recovery_code: this.twoFactorRecoveryCode}) + }) + .then(() => { + + this.isLoading = false + + // Set login state + this.$store.commit('SET_AUTHORIZED', true) + + // Go to files page + this.$router.push({name: 'Files'}) + }) + .catch(error => { + + if (error.response.status == 422) { + + //Authentication bad input + if(! recovery) { + + this.$refs.two_factor_authentication.setErrors({ + 'Two Factor Authentication' : 'Incorrect code' + }) + } + + // Recovery bad input + if(recovery) { + + this.$refs.two_factor_recovery.setErrors({ + 'Two Factor Recovery' : 'Incorrect recovery code' + }) + } + } + + this.isLoading = false + }) + } + + }, }, created() { this.$scrollTop() @@ -213,4 +337,11 @@