92 lines
3.0 KiB
JavaScript
92 lines
3.0 KiB
JavaScript
(function ($, document) {
|
||
(function ($) {
|
||
$.UrlParam = function (name) {
|
||
//宣告正規表達式
|
||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
||
/*
|
||
* window.location.search 獲取URL ?之後的參數(包含問號)
|
||
* substr(1) 獲取第一個字以後的字串(就是去除掉?號)
|
||
* match(reg) 用正規表達式檢查是否符合要查詢的參數
|
||
*/
|
||
var r = window.location.search.substr(1).match(reg);
|
||
//如果取出的參數存在則取出參數的值否則回穿null
|
||
if (r != null) return unescape(r[2]); return null;
|
||
}
|
||
})(jQuery);
|
||
|
||
|
||
})(jQuery, document);
|
||
|
||
$(document).ready(function () {
|
||
$('#token').val($.UrlParam("token"));
|
||
|
||
$('#resetBtn').on('click', function () {
|
||
|
||
var new_pwd = $('#inputNewPassword').val();
|
||
var chk_pwd = $('#inputChkPassword').val();
|
||
var token = $('#token').val();
|
||
if (token === null || token === "") {
|
||
alert("無效的密碼重設驗證,請重新申請!");
|
||
return;
|
||
}
|
||
if (pwdStrengthChecke(new_pwd, 6, 2) === false) {
|
||
alert("新密碼強度不足,請至少包含英文小寫、英文大寫、阿拉伯數字、特殊符號四項中的2項,且長度至少為6個字元!");
|
||
return;
|
||
}
|
||
if (new_pwd != chk_pwd) {
|
||
alert("新密碼與新密碼再確認不一致!");
|
||
return;
|
||
}
|
||
|
||
if (!confirm('請注意,Windows的密碼與公槽密碼是連動的,更改後登入Windows與登入公槽的密碼會跟著一起改!')) {
|
||
return;
|
||
}
|
||
|
||
var formData = {
|
||
new_password: new_pwd,
|
||
token: token
|
||
}
|
||
$.ajax({
|
||
url: "/adApi/resetPassword",
|
||
type: "POST",
|
||
data: formData,
|
||
success: function (data, textStatus, jqXHR) {
|
||
if (data.ret === "yes") {
|
||
alert("密碼重設成功,請使用新密碼登入PC與公槽!");
|
||
|
||
$('#inputNewPassword').val('');
|
||
$('#inputChkPassword').val('');
|
||
|
||
} else {
|
||
if (data.err_code == "1005") {
|
||
alert('無效的密碼重設驗證,請重新申請!');
|
||
return;
|
||
}
|
||
alert(data.message);
|
||
}
|
||
},
|
||
error: function (jqXHR, textStatus, errorThrown) {
|
||
alert('網路或伺服器發生錯誤,請稍後重試!');
|
||
}
|
||
});
|
||
});
|
||
});
|
||
|
||
function pwdStrengthChecke(str, length, strength) {
|
||
if (!str || str.length < length) {
|
||
return false
|
||
}
|
||
let n = 0
|
||
const regex = [
|
||
/[a-z]/,
|
||
/[A-Z]/,
|
||
/[0-9]/,
|
||
/[`~!@#$%^&*()_+=,<>\-\[\]\{\}\:;\.'"\/\\?\|]/
|
||
]
|
||
for (const r of regex) {
|
||
if (str.match(r)) {
|
||
n++
|
||
}
|
||
}
|
||
return n >= strength
|
||
} |