feat: implement premium Email 2FA authentication integrated with auth flow

This commit is contained in:
2026-05-21 21:46:53 +07:00
parent a0673129ee
commit 0d083765ff
50 changed files with 543 additions and 162 deletions
+85 -84
View File
@@ -1,48 +1,48 @@
{
"_AuthenticatedLayout-DI4WLw0Y.js": {
"file": "assets/AuthenticatedLayout-DI4WLw0Y.js",
"_AuthenticatedLayout-CXpLpvfQ.js": {
"file": "assets/AuthenticatedLayout-CXpLpvfQ.js",
"name": "AuthenticatedLayout",
"imports": [
"resources/js/app.tsx"
]
},
"_Can-B4U9XlNZ.js": {
"file": "assets/Can-B4U9XlNZ.js",
"_Can-aEBbIqzc.js": {
"file": "assets/Can-aEBbIqzc.js",
"name": "Can",
"imports": [
"resources/js/app.tsx"
]
},
"_GuestLayout-DUQXV9II.js": {
"file": "assets/GuestLayout-DUQXV9II.js",
"_GuestLayout-BORLbkZX.js": {
"file": "assets/GuestLayout-BORLbkZX.js",
"name": "GuestLayout",
"imports": [
"resources/js/app.tsx"
]
},
"_Portal-DJRNWzaL.js": {
"file": "assets/Portal-DJRNWzaL.js",
"_Portal-ZuUL6jDP.js": {
"file": "assets/Portal-ZuUL6jDP.js",
"name": "Portal",
"imports": [
"resources/js/app.tsx"
]
},
"_PrimaryButton-DMaDfcck.js": {
"file": "assets/PrimaryButton-DMaDfcck.js",
"_PrimaryButton-BtFEIj4P.js": {
"file": "assets/PrimaryButton-BtFEIj4P.js",
"name": "PrimaryButton",
"imports": [
"resources/js/app.tsx"
]
},
"_TextInput--H1JolRE.js": {
"file": "assets/TextInput--H1JolRE.js",
"_TextInput-B35jNVPX.js": {
"file": "assets/TextInput-B35jNVPX.js",
"name": "TextInput",
"imports": [
"resources/js/app.tsx"
]
},
"_filepond-plugin-file-validate-type-Bm_JOscj.js": {
"file": "assets/filepond-plugin-file-validate-type-Bm_JOscj.js",
"_filepond-plugin-file-validate-type-BAKlQ56G.js": {
"file": "assets/filepond-plugin-file-validate-type-BAKlQ56G.js",
"name": "filepond-plugin-file-validate-type",
"imports": [
"resources/js/app.tsx"
@@ -55,15 +55,15 @@
"file": "assets/filepond-plugin-file-validate-type-CEtEkCs1.css",
"src": "_filepond-plugin-file-validate-type-CEtEkCs1.css"
},
"_lodash-LlLUQFZC.js": {
"file": "assets/lodash-LlLUQFZC.js",
"_lodash-CLeklbGx.js": {
"file": "assets/lodash-CLeklbGx.js",
"name": "lodash",
"imports": [
"resources/js/app.tsx"
]
},
"_swal-ClfUb7Hm.js": {
"file": "assets/swal-ClfUb7Hm.js",
"_swal-C9zpmKwY.js": {
"file": "assets/swal-C9zpmKwY.js",
"name": "swal",
"imports": [
"resources/js/app.tsx"
@@ -77,99 +77,99 @@
"src": "_swal-DtpL8WXZ.css"
},
"resources/js/Pages/ActivityLogs/Index.tsx": {
"file": "assets/Index-D9_r9v0x.js",
"file": "assets/Index-DzpVQFJ4.js",
"name": "Index",
"src": "resources/js/Pages/ActivityLogs/Index.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_lodash-LlLUQFZC.js",
"_Portal-DJRNWzaL.js",
"_AuthenticatedLayout-DI4WLw0Y.js"
"_lodash-CLeklbGx.js",
"_Portal-ZuUL6jDP.js",
"_AuthenticatedLayout-CXpLpvfQ.js"
]
},
"resources/js/Pages/Auth/ConfirmPassword.tsx": {
"file": "assets/ConfirmPassword-DrcXbtHq.js",
"file": "assets/ConfirmPassword-C8_m379L.js",
"name": "ConfirmPassword",
"src": "resources/js/Pages/Auth/ConfirmPassword.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_GuestLayout-DUQXV9II.js"
"_GuestLayout-BORLbkZX.js"
]
},
"resources/js/Pages/Auth/ForgotPassword.tsx": {
"file": "assets/ForgotPassword-iOghYKk1.js",
"file": "assets/ForgotPassword-CNcZIt5Q.js",
"name": "ForgotPassword",
"src": "resources/js/Pages/Auth/ForgotPassword.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_GuestLayout-DUQXV9II.js"
"_GuestLayout-BORLbkZX.js"
]
},
"resources/js/Pages/Auth/Login.tsx": {
"file": "assets/Login-DEf6GiBL.js",
"file": "assets/Login-DQ3Z3wsG.js",
"name": "Login",
"src": "resources/js/Pages/Auth/Login.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_GuestLayout-DUQXV9II.js"
"_GuestLayout-BORLbkZX.js"
]
},
"resources/js/Pages/Auth/Register.tsx": {
"file": "assets/Register-qd5-M6ei.js",
"file": "assets/Register-DQmW76pT.js",
"name": "Register",
"src": "resources/js/Pages/Auth/Register.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_GuestLayout-DUQXV9II.js"
"_GuestLayout-BORLbkZX.js"
]
},
"resources/js/Pages/Auth/ResetPassword.tsx": {
"file": "assets/ResetPassword-yn7YFp-y.js",
"file": "assets/ResetPassword-CNbooicX.js",
"name": "ResetPassword",
"src": "resources/js/Pages/Auth/ResetPassword.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_GuestLayout-DUQXV9II.js"
"_GuestLayout-BORLbkZX.js"
]
},
"resources/js/Pages/Auth/VerifyEmail.tsx": {
"file": "assets/VerifyEmail-BFOE_wr5.js",
"file": "assets/VerifyEmail-Drz-rNTv.js",
"name": "VerifyEmail",
"src": "resources/js/Pages/Auth/VerifyEmail.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_GuestLayout-DUQXV9II.js"
"_GuestLayout-BORLbkZX.js"
]
},
"resources/js/Pages/Dashboard.tsx": {
"file": "assets/Dashboard-TCrsNPIF.js",
"file": "assets/Dashboard-Bs1aTWkN.js",
"name": "Dashboard",
"src": "resources/js/Pages/Dashboard.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_AuthenticatedLayout-DI4WLw0Y.js"
"_AuthenticatedLayout-CXpLpvfQ.js"
]
},
"resources/js/Pages/Docs/Index.tsx": {
"file": "assets/Index-BtuMIlrp.js",
"file": "assets/Index-Clbyj6qp.js",
"name": "Index",
"src": "resources/js/Pages/Docs/Index.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_AuthenticatedLayout-DI4WLw0Y.js"
"_AuthenticatedLayout-CXpLpvfQ.js"
]
},
"resources/js/Pages/Errors/Error.tsx": {
"file": "assets/Error-BNxSWMq-.js",
"file": "assets/Error-491emkBU.js",
"name": "Error",
"src": "resources/js/Pages/Errors/Error.tsx",
"isDynamicEntry": true,
@@ -178,143 +178,144 @@
]
},
"resources/js/Pages/Notifications/Index.tsx": {
"file": "assets/Index-C7twDNCh.js",
"file": "assets/Index-CM_OsA8m.js",
"name": "Index",
"src": "resources/js/Pages/Notifications/Index.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_swal-ClfUb7Hm.js",
"_AuthenticatedLayout-DI4WLw0Y.js"
"_swal-C9zpmKwY.js",
"_AuthenticatedLayout-CXpLpvfQ.js"
]
},
"resources/js/Pages/Profile/Edit.tsx": {
"file": "assets/Edit-DtBBQL0C.js",
"file": "assets/Edit-CNCkRx_6.js",
"name": "Edit",
"src": "resources/js/Pages/Profile/Edit.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_filepond-plugin-file-validate-type-Bm_JOscj.js",
"_swal-ClfUb7Hm.js",
"_AuthenticatedLayout-DI4WLw0Y.js"
"_filepond-plugin-file-validate-type-BAKlQ56G.js",
"_swal-C9zpmKwY.js",
"_AuthenticatedLayout-CXpLpvfQ.js"
]
},
"resources/js/Pages/Profile/Partials/DeleteUserForm.tsx": {
"file": "assets/DeleteUserForm-CsCxb3Is.js",
"file": "assets/DeleteUserForm-DE7x8Leb.js",
"name": "DeleteUserForm",
"src": "resources/js/Pages/Profile/Partials/DeleteUserForm.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_TextInput--H1JolRE.js"
"_TextInput-B35jNVPX.js"
]
},
"resources/js/Pages/Profile/Partials/UpdatePasswordForm.tsx": {
"file": "assets/UpdatePasswordForm-CdprBtNO.js",
"file": "assets/UpdatePasswordForm-BXHAer6n.js",
"name": "UpdatePasswordForm",
"src": "resources/js/Pages/Profile/Partials/UpdatePasswordForm.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_TextInput--H1JolRE.js",
"_PrimaryButton-DMaDfcck.js"
"_TextInput-B35jNVPX.js",
"_PrimaryButton-BtFEIj4P.js"
]
},
"resources/js/Pages/Profile/Partials/UpdateProfileInformationForm.tsx": {
"file": "assets/UpdateProfileInformationForm-x_xz6hYY.js",
"file": "assets/UpdateProfileInformationForm-D_xlGwWe.js",
"name": "UpdateProfileInformationForm",
"src": "resources/js/Pages/Profile/Partials/UpdateProfileInformationForm.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_TextInput--H1JolRE.js",
"_PrimaryButton-DMaDfcck.js"
"_TextInput-B35jNVPX.js",
"_PrimaryButton-BtFEIj4P.js"
]
},
"resources/js/Pages/Roles/Index.tsx": {
"file": "assets/Index-DpI3WTvv.js",
"file": "assets/Index-6bUEpOuA.js",
"name": "Index",
"src": "resources/js/Pages/Roles/Index.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_swal-ClfUb7Hm.js",
"_Can-B4U9XlNZ.js",
"_Portal-DJRNWzaL.js",
"_AuthenticatedLayout-DI4WLw0Y.js"
"_swal-C9zpmKwY.js",
"_Can-aEBbIqzc.js",
"_Portal-ZuUL6jDP.js",
"_AuthenticatedLayout-CXpLpvfQ.js"
]
},
"resources/js/Pages/Settings/Index.tsx": {
"file": "assets/Index-DAQoqCgq.js",
"file": "assets/Index-CHGUROqj.js",
"name": "Index",
"src": "resources/js/Pages/Settings/Index.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_filepond-plugin-file-validate-type-Bm_JOscj.js",
"_swal-ClfUb7Hm.js",
"_AuthenticatedLayout-DI4WLw0Y.js"
"_filepond-plugin-file-validate-type-BAKlQ56G.js",
"_swal-C9zpmKwY.js",
"_AuthenticatedLayout-CXpLpvfQ.js"
]
},
"resources/js/Pages/SystemSettings/Index.tsx": {
"file": "assets/Index-LTuEHoHq.js",
"file": "assets/Index-6mXjOBEX.js",
"name": "Index",
"src": "resources/js/Pages/SystemSettings/Index.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_filepond-plugin-file-validate-type-Bm_JOscj.js",
"_swal-ClfUb7Hm.js",
"_AuthenticatedLayout-DI4WLw0Y.js"
"_filepond-plugin-file-validate-type-BAKlQ56G.js",
"_swal-C9zpmKwY.js",
"_AuthenticatedLayout-CXpLpvfQ.js"
]
},
"resources/js/Pages/TwoFactor/Challenge.tsx": {
"file": "assets/Challenge-c9X8OgcQ.js",
"file": "assets/Challenge-B-MEZl4t.js",
"name": "Challenge",
"src": "resources/js/Pages/TwoFactor/Challenge.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx"
"resources/js/app.tsx",
"_swal-C9zpmKwY.js"
]
},
"resources/js/Pages/TwoFactor/Setup.tsx": {
"file": "assets/Setup-DtB1W1gN.js",
"file": "assets/Setup-DM1eUCiO.js",
"name": "Setup",
"src": "resources/js/Pages/TwoFactor/Setup.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_swal-ClfUb7Hm.js",
"_AuthenticatedLayout-DI4WLw0Y.js"
"_swal-C9zpmKwY.js",
"_AuthenticatedLayout-CXpLpvfQ.js"
]
},
"resources/js/Pages/Users/Index.tsx": {
"file": "assets/Index-vfgoW_YL.js",
"file": "assets/Index-id2bWuhS.js",
"name": "Index",
"src": "resources/js/Pages/Users/Index.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_lodash-LlLUQFZC.js",
"_swal-ClfUb7Hm.js",
"_Can-B4U9XlNZ.js",
"_Portal-DJRNWzaL.js",
"_AuthenticatedLayout-DI4WLw0Y.js"
"_lodash-CLeklbGx.js",
"_swal-C9zpmKwY.js",
"_Can-aEBbIqzc.js",
"_Portal-ZuUL6jDP.js",
"_AuthenticatedLayout-CXpLpvfQ.js"
]
},
"resources/js/Pages/Users/Show.tsx": {
"file": "assets/Show-Bb6wuATu.js",
"file": "assets/Show-WkOO4ELw.js",
"name": "Show",
"src": "resources/js/Pages/Users/Show.tsx",
"isDynamicEntry": true,
"imports": [
"resources/js/app.tsx",
"_AuthenticatedLayout-DI4WLw0Y.js"
"_AuthenticatedLayout-CXpLpvfQ.js"
]
},
"resources/js/Pages/Welcome.tsx": {
"file": "assets/Welcome-Sa40wPkZ.js",
"file": "assets/Welcome-CN-3K6xf.js",
"name": "Welcome",
"src": "resources/js/Pages/Welcome.tsx",
"isDynamicEntry": true,
@@ -323,7 +324,7 @@
]
},
"resources/js/Pages/Xxx.tsx": {
"file": "assets/Xxx-NxSPHpxI.js",
"file": "assets/Xxx-CSfLTFTj.js",
"name": "Xxx",
"src": "resources/js/Pages/Xxx.tsx",
"isDynamicEntry": true,
@@ -332,7 +333,7 @@
]
},
"resources/js/app.tsx": {
"file": "assets/app-CBC6ZGaO.js",
"file": "assets/app-C-4jOatG.js",
"name": "app",
"src": "resources/js/app.tsx",
"isEntry": true,
@@ -363,7 +364,7 @@
"resources/js/Pages/Xxx.tsx"
],
"css": [
"assets/app-CgPzmd0h.css"
"assets/app-BcNKF-Yb.css"
]
}
}