mirror of
https://github.com/xbgmsharp/postgsail.git
synced 2025-09-17 19:27:49 +00:00
Update OTP Code to a random 6 digit
This commit is contained in:
@@ -23,6 +23,28 @@ COMMENT ON TABLE
|
|||||||
CREATE INDEX otp_pass_idx ON auth.otp (otp_pass);
|
CREATE INDEX otp_pass_idx ON auth.otp (otp_pass);
|
||||||
CREATE INDEX otp_user_email_idx ON auth.otp (user_email);
|
CREATE INDEX otp_user_email_idx ON auth.otp (user_email);
|
||||||
|
|
||||||
|
DROP FUNCTION IF EXISTS public.generate_uid_fn;
|
||||||
|
CREATE OR REPLACE FUNCTION public.generate_uid_fn(size INT) RETURNS TEXT
|
||||||
|
AS $generate_uid_fn$
|
||||||
|
DECLARE
|
||||||
|
characters TEXT := '0123456789';
|
||||||
|
bytes BYTEA := gen_random_bytes(size);
|
||||||
|
l INT := length(characters);
|
||||||
|
i INT := 0;
|
||||||
|
output TEXT := '';
|
||||||
|
BEGIN
|
||||||
|
WHILE i < size LOOP
|
||||||
|
output := output || substr(characters, get_byte(bytes, i) % l + 1, 1);
|
||||||
|
i := i + 1;
|
||||||
|
END LOOP;
|
||||||
|
RETURN output;
|
||||||
|
END;
|
||||||
|
$generate_uid_fn$ LANGUAGE plpgsql VOLATILE;
|
||||||
|
-- Description
|
||||||
|
COMMENT ON FUNCTION
|
||||||
|
public.generate_uid_fn
|
||||||
|
IS 'Generate a random digit';
|
||||||
|
|
||||||
-- gerenate a OTP code by email
|
-- gerenate a OTP code by email
|
||||||
-- Expose as an API endpoint
|
-- Expose as an API endpoint
|
||||||
DROP FUNCTION IF EXISTS api.generate_otp_fn;
|
DROP FUNCTION IF EXISTS api.generate_otp_fn;
|
||||||
@@ -40,7 +62,8 @@ AS $generate_otp$
|
|||||||
IF _email_check IS NULL THEN
|
IF _email_check IS NULL THEN
|
||||||
RETURN NULL;
|
RETURN NULL;
|
||||||
END IF;
|
END IF;
|
||||||
SELECT substr(gen_random_uuid()::text, 1, 8) INTO otp_pass;
|
--SELECT substr(gen_random_uuid()::text, 1, 6) INTO otp_pass;
|
||||||
|
SELECT generate_uid_fn(6) INTO otp_pass;
|
||||||
INSERT INTO auth.otp (user_email, otp_pass) VALUES (_email_check, otp_pass);
|
INSERT INTO auth.otp (user_email, otp_pass) VALUES (_email_check, otp_pass);
|
||||||
RETURN otp_pass;
|
RETURN otp_pass;
|
||||||
END;
|
END;
|
||||||
@@ -48,7 +71,7 @@ $generate_otp$ language plpgsql security definer;
|
|||||||
-- Description
|
-- Description
|
||||||
COMMENT ON FUNCTION
|
COMMENT ON FUNCTION
|
||||||
api.generate_otp_fn
|
api.generate_otp_fn
|
||||||
IS 'Generate OTP';
|
IS 'Generate otp code';
|
||||||
|
|
||||||
DROP FUNCTION IF EXISTS auth.verify_otp_fn;
|
DROP FUNCTION IF EXISTS auth.verify_otp_fn;
|
||||||
CREATE OR REPLACE FUNCTION auth.verify_otp_fn(IN token TEXT) RETURNS TEXT
|
CREATE OR REPLACE FUNCTION auth.verify_otp_fn(IN token TEXT) RETURNS TEXT
|
||||||
@@ -174,7 +197,7 @@ AS $telegram_user_exists$
|
|||||||
_chat_id BIGINT := chat_id;
|
_chat_id BIGINT := chat_id;
|
||||||
BEGIN
|
BEGIN
|
||||||
IF _email IS NULL OR _chat_id IS NULL THEN
|
IF _email IS NULL OR _chat_id IS NULL THEN
|
||||||
RAISE EXCEPTION 'invalid input3' USING HINT = 'check your parameter3';
|
RAISE EXCEPTION 'invalid input' USING HINT = 'check your parameter';
|
||||||
END IF;
|
END IF;
|
||||||
-- Does user and telegram obj
|
-- Does user and telegram obj
|
||||||
SELECT preferences->'telegram'->'id' INTO _chat_id
|
SELECT preferences->'telegram'->'id' INTO _chat_id
|
||||||
|
Reference in New Issue
Block a user