qiutianhong 7 months ago
parent
commit
a9889fbac0
  1. 1
      frontend/src/components/desktop/LockDesktop.vue
  2. 2
      frontend/src/hook/useComputer.ts
  3. 56
      frontend/src/system/config.ts
  4. 6
      godo/files/os.go

1
frontend/src/components/desktop/LockDesktop.vue

@ -121,6 +121,7 @@ onMounted(() => {
});
async function onLogin() {
localStorage.removeItem("godoosClientId");
if (loginCallback) {
const res = await loginCallback(userName.value, userPassword.value);
if (res) {

2
frontend/src/hook/useComputer.ts

@ -75,7 +75,7 @@ export const useComputer = (adpater: {
// const path = file?.isShare ? file.titleName : file.path
const path = file.path
adpater.setRouter(path);
refersh(file);
refersh();
} else {
adpater.openFile(file.path);
}

56
frontend/src/system/config.ts

@ -299,32 +299,42 @@ export const clearSystemConfig = () => {
localStorage.setItem('GodoOS-storeType', storetype)
//localStorage.removeItem('GodoOS-config');
};
function bin2hex(s: string) {
s = encodeURI(s);//只会有0-127的ascii不转化
let m: any = s.match(/%[\dA-F]{2}/g), a: any = s.split(/%[\dA-F]{2}/), i, j, n, t;
m.push("")
for (i in a) {
if (a[i] === "") { a[i] = m[i]; continue }
n = ""
for (j in a[i]) {
t = a[i][j].charCodeAt().toString(16).toUpperCase()
if (t.length === 1) t = "0" + t
n += "%" + t
}
a[i] = n + m[i]
}
return a.join("").split("%").join("")
}
// function bin2hex(s: string) {
// s = encodeURI(s);//只会有0-127的ascii不转化
// let m: any = s.match(/%[\dA-F]{2}/g), a: any = s.split(/%[\dA-F]{2}/), i, j, n, t;
// m.push("")
// for (i in a) {
// if (a[i] === "") { a[i] = m[i]; continue }
// n = ""
// for (j in a[i]) {
// t = a[i][j].charCodeAt().toString(16).toUpperCase()
// if (t.length === 1) t = "0" + t
// n += "%" + t
// }
// a[i] = n + m[i]
// }
// return a.join("").split("%").join("")
// }
// export const getClientId = () => {
// let uuid: any = localStorage.getItem("godoosClientId");
// if (!uuid) {
// let canvas = document.createElement('canvas');
// let ctx: any = canvas.getContext('2d');
// ctx.fillStyle = '#FF0000';
// ctx.fillRect(0, 0, 8, 10);
// let b64 = canvas.toDataURL().replace("data:image/png;base64,", "");
// let bin = window.atob(b64);
// uuid = bin2hex(bin.slice(-16, -12));
// localStorage.setItem("godoosClientId", uuid);
// }
// return uuid;
// }
export const getClientId = () => {
let uuid: any = localStorage.getItem("godoosClientId");
if (!uuid) {
let canvas = document.createElement('canvas');
let ctx: any = canvas.getContext('2d');
ctx.fillStyle = '#FF0000';
ctx.fillRect(0, 0, 8, 10);
let b64 = canvas.toDataURL().replace("data:image/png;base64,", "");
let bin = window.atob(b64);
uuid = bin2hex(bin.slice(-16, -12));
const timestamp = new Date().getTime();
const random = Math.floor(Math.random() * 1000000);
uuid = `${timestamp}${random}`;
localStorage.setItem("godoosClientId", uuid);
}
return uuid;

6
godo/files/os.go

@ -364,7 +364,11 @@ func IsHavePwd(pwd string) bool {
func GetSalt(r *http.Request) (string, error) {
data, ishas := libs.GetConfig("salt")
if ishas {
return data.(string), nil
// 断言成功则返回
if salt, ok := data.(string); ok {
return salt, nil
}
return "", fmt.Errorf("类型断言失败,期望类型为 string")
}
salt := r.Header.Get("salt")
if salt != "" {

Loading…
Cancel
Save