This commit is contained in:
shaoyongjun 2024-10-07 20:59:09 +08:00
parent 06636ff1d6
commit a7d08b3633
5 changed files with 351 additions and 19 deletions

View File

@ -44,24 +44,9 @@
<script>
async function toLogin() {
try {
let response = await fetch('/v1/user/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json;charset=utf-8'
},
body: JSON.stringify({
account: document.getElementById('myAccount').value,
password: document.getElementById('myPwd').value
})
});
let result = await response.json()
console.log(result)
if (result.code === 0 && result.data !== undefined) {
console.log('登录成功');
localStorage.setItem("token", result.data.token);
// alert(localStorage.getItem("token"))
}
const response = await fetch('http://127.0.0.1:8080');
const body = await response.text();
document.body.innerHTML = body
} catch (error) {
console.log('Request Failed', error);
alert("系统异常,请稍后再试");

227
static/login_shuidi_v2.html Normal file
View File

@ -0,0 +1,227 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>水滴登录页</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
height: 100vh;
background: #eff0f4;
overflow: hidden;
}
.box {
position: relative;
display: flex;
justify-content: space-between;
margin: 150px auto;
width: 470px;
}
.box .content {
position: relative;
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: center;
width: 350px;
height: 350px;
padding: 60px 20px;
box-shadow: inset 20px 20px 20px rgba(0, 0, 0, 0.05),
25px 35px 20px rgba(0, 0, 0, 0.05), 25px 30px 30px rgba(0, 0, 0, 0.05),
inset -20px -20px 25px rgba(255, 255, 255, 0.9);
}
.box .content {
border-radius: 52% 48% 33% 67% / 38% 45% 55% 62%;
transition: 0.5s;
}
.box .content:hover {
border-radius: 50%;
}
.box .content::before {
content: "";
position: absolute;
top: 50px;
left: 85px;
width: 35px;
height: 35px;
border-radius: 50%;
background: #fff;
opacity: 0.9;
}
.box .content::after {
content: "";
position: absolute;
top: 90px;
left: 110px;
width: 15px;
height: 15px;
border-radius: 50%;
background: #fff;
opacity: 0.9;
}
.box .content div {
position: relative;
width: 225px;
border-radius: 25px;
box-shadow: inset 2px 5px 10px rgba(0, 0, 0, 0.1),
inset -2px -5px 10px rgba(255, 255, 255, 1),
15px 15px 10px rgba(0, 0, 0, 0.05), 15px 10px 15px rgba(0, 0, 0, 0.025);
}
.box .content div::before {
content: "";
position: absolute;
top: 8px;
left: 50%;
transform: translateX(-50%);
width: 65%;
height: 5px;
background: rgba(255, 255, 255, 0.5);
border-radius: 5px;
}
.box .content input {
width: 100%;
border: none;
outline: none;
background: transparent;
font-size: 16px;
padding: 10px 15px;
}
.box .content input[type="submit"] {
color: #fff;
cursor: pointer;
}
.box .content div:last-child {
width: 120px;
background: #ff0f5b;
box-shadow: inset 2px 5px 10px rgba(0, 0, 0, 0.1),
15px 15px 10px rgba(0, 0, 0, 0.05), 15px 10px 15px rgba(0, 0, 0, 0.025);
transition: 0.5s;
}
.box .content div:last-child:hover {
width: 150px;
}
.btns {
position: absolute;
right: 0;
bottom: 0;
width: 120px;
height: 120px;
background: #c61dff;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
text-decoration: none;
color: #fff;
font-size: 14px;
box-shadow: inset 10px 10px 10px rgba(190, 1, 254, 0.05),
15px 25px 10px rgba(190, 1, 254, 0.1), 15px 20px 20px rgba(190, 1, 254, 0.1),
inset -10px -10px 15px rgba(255, 255, 255, 0.5);
border-radius: 44% 56% 65% 35% / 57% 58% 42% 43%;
}
.register {
bottom: 150px;
right: 0px;
width: 80px;
height: 80px;
border-radius: 49% 51% 52% 48% / 63% 59% 41% 37%;
background: #01b4ff;
box-shadow: inset 10px 10px 10px rgba(1, 180, 255, 0.05),
15px 25px 10px rgba(1, 180, 255, 0.1), 15px 20px 20px rgba(1, 180, 255, 0.1),
inset -10px -10px 15px rgba(255, 255, 255, 0.5);
}
.btns::before {
content: "";
position: absolute;
top: 15px;
left: 30px;
width: 20px;
height: 20px;
border-radius: 50%;
background: #fff;
opacity: 0.45;
}
.register::before {
left: 20px;
width: 15px;
height: 15px;
}
.btns {
transition: 0.25s;
}
.btns:hover {
border-radius: 50%;
}
footer {
box-sizing: border-box;
text-align: center;
margin: 0;
padding: 0;
/*background-color: #457B9D;*/
}
</style>
</head>
<body>
<div class="box">
<div class="content">
<h2>登录</h2>
<div>
<input id="myAccount" type="text" placeholder="请输入用户名">
</div>
<div>
<input id="myPwd" type="password" placeholder="请输入密码">
</div>
<div>
<input type="submit" value="登录" onclick="toLogin()">
</div>
</div>
<a href="#" class="btns">忘记密码</a>
<a href="#" class="btns register">注册</a>
</div>
<footer>
<p>
<a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">沪ICP备18034819号</a>
<a href="https://beian.mps.gov.cn/" target="_blank" rel="nofollow"><i class="police-ico"></i>沪公网安备31011302007198号</a>
</p>
</footer>
</body>
<script>
async function toLogin() {
try {
const response = await fetch('http://127.0.0.1:8080');
const body = await response.text();
document.body.innerHTML = body
} catch (error) {
console.log('Request Failed', error);
alert("系统异常,请稍后再试");
}
}
</script>
</html>

28
static/privacy.html Normal file

File diff suppressed because one or more lines are too long

92
static/privacy2.html Normal file
View File

@ -0,0 +1,92 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>隐私保护声明</title>
<style>
* {
margin: 0;
}
</style>
</head>
<body>
<section style="max-width: 650px;margin: 0 auto;font-size: 16px; color: black; padding: 25px 30px; line-height: 1.6; word-spacing: 0px; letter-spacing: 0px; word-break: break-word; word-wrap: break-word; text-align: justify; margin-top: -10px;">
<h1>脉乐萌隐私保护声明</h1>
<p>修订日期2024年10月7日</p>
<p>生效日期2024年10月7日</p>
<p>
当您选择使用mylomen.com我们就有责任和义务保护您在本站所产生的所有数据和行为隐私维护每一个用户的隐私权利。
我们尽量以清晰、容易理解的方式展现此隐私声明,帮助您能够清晰地了解我们会收集哪些数据、为什么收集这些数据,会利用这些数据做些什么及如何保护这些数据。
</p>
<p>
若您使用mylomen.com的服务即表示您认同我们在本政策中所述内容。
</p>
<h2>
我们会收集您的以下信息
</h2>
<ul>
<li>
<p>
日志信息当您使用mylomen.com服务时我们的服务器会自动记录一些信息例如您对我们的产品和/或服务的使用情况、IP地址、所访问服务的URL、浏览器的类型和使用的语言以及访问服务的日期、时间、时长等。例如127.0.0.1 - - [29/Oct/2019:03:44:39 +0800] "GET / HTTP/2.0" 200 3964 "-" "Mozilla/5.0 (Linux; Android 8.1.0; PACM00 Build/O11019; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/62.0.3202.84 Mobile Safari/537.36"
</p>
</li>
<li>
<p>
设备信息为了提供更好的服务并改善用户体验我们会收集设备属性信息例如您的硬件型号、操作系统版本、设备配置、唯一设备标识符、网络设备硬件地址MAC等设备连接信息浏览器的类型、电信运营商、使用的语言。对于从您的各种设备上收集到的信息我们可能会将它们进行关联以便我们能在这些设备上为您提供一致的服务。
</p>
</li>
<li>
<p>
位置信息当您开启浏览器定位功能并使用我们基于位置提供的相关服务时我们可能会收集和处理有关您实际所在位置的信息以使得您不需要手动输入自身地理坐标就可获得相关服务。我们会使用IP 地址获取您的位置信息,能够提供相关信息的其他信息。
</p>
</li>
<li>
<p>
临时应用使用到的文件/图片数据:当您使用本站功能,需要上传的数据时,我们会上传您的数据到服务器进行解析,临时解析完成后自动清除,我们承诺不会用作其他任何用途。为了确保您的数据安全。
</p>
</li>
</ul>
<h2>
信息的用途
</h2>
<ul>
<li>
<p>
安全防护:我们会使用您的访问日志,进行大数据分析,训练模型,以防护对本站一切可能性的攻击 例如XSS、DDOS攻击等。
</p>
</li>
<li>
<p>
内容推荐:通过使用收集的信息,我们会得以向您提供定制化内容。在符合相关法律法规的前提下,可能将通过某些服务所收集的信息用于我们的其他服务。
</p>
</li>
<li>
<p>
其他用途:在将您的信息用于隐私声明未包含的用途时,我们会事先征求您的同意。
</p>
</li>
</ul>
<h2>
保存期限
</h2>
<p>
当您不再访问本站超过1年时间我们会自动清理相关数据。
</p>
<h2>
联系方式:
</h2>
<p>
邮箱地址: 1290251929@qq.com
</p>
</section>
</body>
</html>

View File

@ -50,7 +50,7 @@ func InitStaticGroup(g *echo.Group) {
c.Response().Header().Set("Content-Type", "text/html; charset=utf-8")
c.Response().Header().Set("Cache-Control", "max-age=3600")
return c.Blob(http.StatusOK, "text/html; charset=utf-8", pageMap["login_shuidi.html"])
return c.Blob(http.StatusOK, "text/html; charset=utf-8", pageMap["login_shuidi_v2.html"])
})
g.GET("css/:name", func(c echo.Context) error {