feat: Secure SMS verification with Redis (Predis)
- Added Predis library for Redis connection (no PHP extension required) - Server-side SMS code generation and storage in Redis - Rate limiting and brute-force protection - Integration with n8n webhook for SMS sending - Environment variables moved to .env file - Fixed policy verification endpoint - Added file-based fallback if Redis unavailable
This commit is contained in:
BIN
fonts/Roboto/Roboto-Black.eot
Normal file
BIN
fonts/Roboto/Roboto-Black.eot
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Black.ttf
Normal file
BIN
fonts/Roboto/Roboto-Black.ttf
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Black.woff
Normal file
BIN
fonts/Roboto/Roboto-Black.woff
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-BlackItalic.eot
Normal file
BIN
fonts/Roboto/Roboto-BlackItalic.eot
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-BlackItalic.ttf
Normal file
BIN
fonts/Roboto/Roboto-BlackItalic.ttf
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-BlackItalic.woff
Normal file
BIN
fonts/Roboto/Roboto-BlackItalic.woff
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Bold.eot
Normal file
BIN
fonts/Roboto/Roboto-Bold.eot
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Bold.ttf
Normal file
BIN
fonts/Roboto/Roboto-Bold.ttf
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Bold.woff
Normal file
BIN
fonts/Roboto/Roboto-Bold.woff
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-BoldItalic.eot
Normal file
BIN
fonts/Roboto/Roboto-BoldItalic.eot
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-BoldItalic.ttf
Normal file
BIN
fonts/Roboto/Roboto-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-BoldItalic.woff
Normal file
BIN
fonts/Roboto/Roboto-BoldItalic.woff
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Italic.eot
Normal file
BIN
fonts/Roboto/Roboto-Italic.eot
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Italic.ttf
Normal file
BIN
fonts/Roboto/Roboto-Italic.ttf
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Italic.woff
Normal file
BIN
fonts/Roboto/Roboto-Italic.woff
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Light.eot
Normal file
BIN
fonts/Roboto/Roboto-Light.eot
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Light.ttf
Normal file
BIN
fonts/Roboto/Roboto-Light.ttf
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Light.woff
Normal file
BIN
fonts/Roboto/Roboto-Light.woff
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-LightItalic.eot
Normal file
BIN
fonts/Roboto/Roboto-LightItalic.eot
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-LightItalic.ttf
Normal file
BIN
fonts/Roboto/Roboto-LightItalic.ttf
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-LightItalic.woff
Normal file
BIN
fonts/Roboto/Roboto-LightItalic.woff
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Medium.eot
Normal file
BIN
fonts/Roboto/Roboto-Medium.eot
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Medium.ttf
Normal file
BIN
fonts/Roboto/Roboto-Medium.ttf
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Medium.woff
Normal file
BIN
fonts/Roboto/Roboto-Medium.woff
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-MediumItalic.eot
Normal file
BIN
fonts/Roboto/Roboto-MediumItalic.eot
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-MediumItalic.ttf
Normal file
BIN
fonts/Roboto/Roboto-MediumItalic.ttf
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-MediumItalic.woff
Normal file
BIN
fonts/Roboto/Roboto-MediumItalic.woff
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Regular.eot
Normal file
BIN
fonts/Roboto/Roboto-Regular.eot
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Regular.ttf
Normal file
BIN
fonts/Roboto/Roboto-Regular.ttf
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Regular.woff
Normal file
BIN
fonts/Roboto/Roboto-Regular.woff
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Thin.eot
Normal file
BIN
fonts/Roboto/Roboto-Thin.eot
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Thin.ttf
Normal file
BIN
fonts/Roboto/Roboto-Thin.ttf
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-Thin.woff
Normal file
BIN
fonts/Roboto/Roboto-Thin.woff
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-ThinItalic.eot
Normal file
BIN
fonts/Roboto/Roboto-ThinItalic.eot
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-ThinItalic.ttf
Normal file
BIN
fonts/Roboto/Roboto-ThinItalic.ttf
Normal file
Binary file not shown.
BIN
fonts/Roboto/Roboto-ThinItalic.woff
Normal file
BIN
fonts/Roboto/Roboto-ThinItalic.woff
Normal file
Binary file not shown.
BIN
fonts/Roboto/RobotoBold.eot
Normal file
BIN
fonts/Roboto/RobotoBold.eot
Normal file
Binary file not shown.
BIN
fonts/Roboto/RobotoBold.ttf
Normal file
BIN
fonts/Roboto/RobotoBold.ttf
Normal file
Binary file not shown.
BIN
fonts/Roboto/RobotoBold.woff
Normal file
BIN
fonts/Roboto/RobotoBold.woff
Normal file
Binary file not shown.
BIN
fonts/Roboto/RobotoRegular.eot
Normal file
BIN
fonts/Roboto/RobotoRegular.eot
Normal file
Binary file not shown.
BIN
fonts/Roboto/RobotoRegular.ttf
Normal file
BIN
fonts/Roboto/RobotoRegular.ttf
Normal file
Binary file not shown.
BIN
fonts/Roboto/RobotoRegular.woff
Normal file
BIN
fonts/Roboto/RobotoRegular.woff
Normal file
Binary file not shown.
133
fonts/Roboto/stylesheet.css
Normal file
133
fonts/Roboto/stylesheet.css
Normal file
@@ -0,0 +1,133 @@
|
||||
/* This stylesheet generated by Transfonter (https://transfonter.org) on February 25, 2018 4:00 PM */
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
src: url('Roboto-MediumItalic.eot');
|
||||
src: local('Roboto Medium Italic'), local('Roboto-MediumItalic'),
|
||||
url('Roboto-MediumItalic.eot?#iefix') format('embedded-opentype'),
|
||||
url('Roboto-MediumItalic.woff') format('woff'),
|
||||
url('Roboto-MediumItalic.ttf') format('truetype');
|
||||
font-weight: 500;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
src: url('Roboto-Italic.eot');
|
||||
src: local('Roboto Italic'), local('Roboto-Italic'),
|
||||
url('Roboto-Italic.eot?#iefix') format('embedded-opentype'),
|
||||
url('Roboto-Italic.woff') format('woff'),
|
||||
url('Roboto-Italic.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
src: url('Roboto-Bold.eot');
|
||||
src: local('Roboto Bold'), local('Roboto-Bold'),
|
||||
url('Roboto-Bold.eot?#iefix') format('embedded-opentype'),
|
||||
url('Roboto-Bold.woff') format('woff'),
|
||||
url('Roboto-Bold.ttf') format('truetype');
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
src: url('Roboto-Regular.eot');
|
||||
src: local('Roboto'), local('Roboto-Regular'),
|
||||
url('Roboto-Regular.eot?#iefix') format('embedded-opentype'),
|
||||
url('Roboto-Regular.woff') format('woff'),
|
||||
url('Roboto-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
src: url('Roboto-Medium.eot');
|
||||
src: local('Roboto Medium'), local('Roboto-Medium'),
|
||||
url('Roboto-Medium.eot?#iefix') format('embedded-opentype'),
|
||||
url('Roboto-Medium.woff') format('woff'),
|
||||
url('Roboto-Medium.ttf') format('truetype');
|
||||
font-weight: 500;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
src: url('Roboto-BoldItalic.eot');
|
||||
src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'),
|
||||
url('Roboto-BoldItalic.eot?#iefix') format('embedded-opentype'),
|
||||
url('Roboto-BoldItalic.woff') format('woff'),
|
||||
url('Roboto-BoldItalic.ttf') format('truetype');
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
src: url('Roboto-ThinItalic.eot');
|
||||
src: local('Roboto Thin Italic'), local('Roboto-ThinItalic'),
|
||||
url('Roboto-ThinItalic.eot?#iefix') format('embedded-opentype'),
|
||||
url('Roboto-ThinItalic.woff') format('woff'),
|
||||
url('Roboto-ThinItalic.ttf') format('truetype');
|
||||
font-weight: 100;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
src: url('Roboto-Black.eot');
|
||||
src: local('Roboto Black'), local('Roboto-Black'),
|
||||
url('Roboto-Black.eot?#iefix') format('embedded-opentype'),
|
||||
url('Roboto-Black.woff') format('woff'),
|
||||
url('Roboto-Black.ttf') format('truetype');
|
||||
font-weight: 900;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
src: url('Roboto-Light.eot');
|
||||
src: local('Roboto Light'), local('Roboto-Light'),
|
||||
url('Roboto-Light.eot?#iefix') format('embedded-opentype'),
|
||||
url('Roboto-Light.woff') format('woff'),
|
||||
url('Roboto-Light.ttf') format('truetype');
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
src: url('Roboto-LightItalic.eot');
|
||||
src: local('Roboto Light Italic'), local('Roboto-LightItalic'),
|
||||
url('Roboto-LightItalic.eot?#iefix') format('embedded-opentype'),
|
||||
url('Roboto-LightItalic.woff') format('woff'),
|
||||
url('Roboto-LightItalic.ttf') format('truetype');
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
src: url('Roboto-BlackItalic.eot');
|
||||
src: local('Roboto Black Italic'), local('Roboto-BlackItalic'),
|
||||
url('Roboto-BlackItalic.eot?#iefix') format('embedded-opentype'),
|
||||
url('Roboto-BlackItalic.woff') format('woff'),
|
||||
url('Roboto-BlackItalic.ttf') format('truetype');
|
||||
font-weight: 900;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
src: url('Roboto-Thin.eot');
|
||||
src: local('Roboto Thin'), local('Roboto-Thin'),
|
||||
url('Roboto-Thin.eot?#iefix') format('embedded-opentype'),
|
||||
url('Roboto-Thin.woff') format('woff'),
|
||||
url('Roboto-Thin.ttf') format('truetype');
|
||||
font-weight: 100;
|
||||
font-style: normal;
|
||||
}
|
||||
Reference in New Issue
Block a user