123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- var Package = function (url, options) {
- this.defaults = {
- //默认配置,可以通过option覆盖
- URL: url || localStorage.getItem("url"),
- token: "", //存储token
- };
- this.settings = Object.assign({}, this.defaults, options); //覆盖默认配置操作
- };
- Package.prototype = {
- firstLogin: function (loginName) {
- let _t = this;
- return new Promise((resolve, reject) => {
- $.ajax({
- type: "POST",
- url: this.settings.URL + "/videoService/accounts/authorize",
- contentType: "application/json", //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
- dateType: "json",
- data: JSON.stringify({
- userName: this.settings.username,
- clientType: "winpc",
- ipAddress: "", //可不传
- pid: 2548, //可不传
- }),
- beforeSend: function (xhr) {
- xhr.setRequestHeader("X-Subject-Token", "");
- xhr.setRequestHeader(
- "Content-Type",
- "application/json;charset=UTF-8"
- );
- },
- success: function (jsonResult) {
- resolve(jsonResult);
- },
- error: function (data) {
- reject(JSON.parse(data.responseText));
- },
- });
- });
- },
- keepalive: function () {
- let _t = this;
- if (localStorage.getItem("token")) {
- $.ajax({
- type: "PUT",
- url: this.settings.URL + "/videoService/accounts/token/keepalive",
- contentType: "application/json", //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
- dateType: "json",
- data: JSON.stringify({
- token: localStorage.getItem("token"),
- duration: 120,
- }),
- beforeSend: function (xhr) {
- xhr.setRequestHeader(
- "X-Subject-Token",
- localStorage.getItem("token")
- );
- xhr.setRequestHeader(
- "Content-Type",
- "application/json;charset=UTF-8"
- );
- },
- success: function (jsonResult) {
- setTimeout(function () {
- _t.keepalive();
- }, 20000);
- },
- error: function (data) {
- _t.login()
- },
- });
- }
- },
- login: async function () {
- let _t = this;
- var loginName = this.settings.username;
- var password = this.settings.password;
- localStorage.setItem("password", password);
- _t.firstLogin(loginName).catch((firstLoginRes) => {
- //console.log("firstLoginRes: ", firstLoginRes);
- var md1 = hex_md5(password); //第1次加密
- var md2 = hex_md5(loginName + md1); //第2次加密
- var md3 = hex_md5(md2); //第3次加密
- var md4 = hex_md5(loginName + ":" + firstLoginRes.realm + ":" + md3); //第4次加密
- var signature = hex_md5(md4 + ":" + firstLoginRes.randomKey); //第5次加密
- $.ajax({
- type: "POST",
- url: this.settings.URL + "/videoService/accounts/authorize",
- contentType: "application/json", //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
- dateType: "json",
- async: false,
- data: JSON.stringify({
- userName: loginName,
- signature: signature,
- randomKey: firstLoginRes.randomKey,
- encryptType: "MD5",
- clientType: "winpc",
- pid: 2548,
- }),
- beforeSend: function (xhr) {
- xhr.setRequestHeader("X-Subject-Token", "");
- xhr.setRequestHeader(
- "Content-Type",
- "application/json;charset=UTF-8"
- );
- },
- success: function (jsonResult) {
- if (typeof jsonResult === "string") {
- if (jsonResult && JSON.parse(jsonResult).token) {
- localStorage.setItem("token", JSON.parse(jsonResult).token);
- localStorage.setItem("userId", JSON.parse(jsonResult).userId);
- localStorage.setItem("url", _t.settings.URL);
- localStorage.setItem("userName", loginName);
- // _t.settings.token = JSON.parse(jsonResult).token;
- console.log("localStorage-->", localStorage);
- _t.keepalive();
- // window.location.href = "./pages/菜单.html";
- }
- } else {
- if (jsonResult && jsonResult.token) {
- localStorage.setItem("token", jsonResult.token);
- localStorage.setItem("userId", jsonResult.userId);
- localStorage.setItem("url", _t.settings.URL);
- localStorage.setItem("userName", loginName);
- // _t.settings.token = JSON.parse(jsonResult).token;
- console.log("localStorage-->", localStorage);
- _t.keepalive();
- // window.location.href = "./pages/菜单.html";
- }
- }
- },
- error: function (data) {
- let msg = JSON.parse(data.responseText).message;
- $(".loginTip .error-wrap .error").html(msg);
- $(".loginTip").show();
- },
- });
- });
- },
- signOut() {
- let _t = this;
- $.ajax({
- type: "POST",
- url: _t.settings.URL + "/videoService/accounts/unauthorize",
- contentType: "application/json", //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
- async: false,
- dateType: "json",
- data: JSON.stringify({
- userName: localStorage.getItem("userName"),
- token: localStorage.getItem("token"),
- }),
- beforeSend: function (xhr) {
- xhr.setRequestHeader("X-Subject-Token", localStorage.getItem("token"));
- xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
- //xhr.setRequestHeader("Origin",null);
- },
- success: function (jsonResult) {
- localStorage.clear();
- window.location.href = "../login.html";
- },
- error: function (data) {
- //obj
- if (JSON.parse(data.responseText).message === "invalid token") {
- window.location.href = "../login.html";
- }
- },
- });
- },
- };
|