first commit

This commit is contained in:
DATAEXPRESS\4734
2026-02-06 15:09:39 +08:00
commit 3f342cee87
35 changed files with 3572 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
DELIMITER //
CREATE OR REPLACE FUNCTION checktoken(
p_token VARCHAR(200)
)
/*
Function : 判斷傳入的 Token 是否過期, 若未過期, 傳回 userid, 已過期傳回空白
Description: 判斷 Token 是否過期, 若未過期, 傳回 0, 已過期傳回 9
簡單的測試 ok
Build Date : 2018/03/02
Modify History
Item Who Date Modify Docs
==== ========== ========== ================================================
1 Michael 2018/01/08 開始改寫為 MySQL 版
*/
RETURNS VARCHAR(100)
DETERMINISTIC
BEGIN
DECLARE v_lastlogintime DATETIME;
DECLARE v_recno INT;
DECLARE v_diffhour INT;
DECLARE v_statuscode INT;
DECLARE v_errMsg VARCHAR(200);
DECLARE v_longday INT; -- 0: token 永久有效 其他: token 的效期天數
DECLARE v_userid VARCHAR(100);
SET v_longday = 0; -- token 預設永久有效
SET v_statuscode = 4;
SET v_userid = '';
SET v_errMsg = '帳號或密碼錯誤!';
SELECT COUNT(*), userid, lastlogintime
INTO v_recno, v_userid, v_lastlogintime
FROM sys_users
WHERE IFNULL(isstop, '') <> 'Y'
AND IFNULL(token, 'null') = p_token
GROUP BY userid, lastlogintime;
IF v_recno > 0 THEN
-- 如果傳入 token
SELECT TIMESTAMPDIFF(HOUR, v_lastlogintime, NOW()) INTO v_diffhour;
IF v_diffhour >= 24 * v_longday AND v_longday > 0 THEN
SET v_statuscode = 9;
SET v_errMsg = 'token 已過期,請重新登入!';
SET v_userid = '';
ELSE
SET v_statuscode = 0;
SET v_errMsg = 'token 有效!';
END IF;
END IF;
-- 回傳值 dataset[0], 前3個欄位有固定的內容
RETURN IFNULL(v_userid, '');
END //
DELIMITER ;