Pārlūkot izejas kodu

d06 Подгонка под проверка кукиса (неправильно используется)

SVI 2 gadi atpakaļ
vecāks
revīzija
a037ec313c

+ 4 - 4
server/serv_web/web_api/web_api.go

@@ -431,14 +431,14 @@ func (сам *ВебАпи) логин(кнт *fiber.Ctx) error {
 	}
 	log.Printf("ВебАпи.логин(): : %#+v\n", *запрос)
 	if запрос.Логин_ == "" || запрос.Пароль_ == "" {
-		return кнт.JSON(fiber.Map{
-			"status": "пустой логин/пароль",
+		return кнт.Render("login", fiber.Map{
+			"err": "пустой логин/пароль",
 		})
 	}
 
 	if запрос.Логин_ != "svi" || запрос.Пароль_ != "Lera_07091978" {
-		return кнт.JSON(fiber.Map{
-			"status": "ошибка логина/пароля",
+		return кнт.Render("login", fiber.Map{
+			"err": "ошибка логина/пароля",
 		})
 	}
 	кнт.Cookie(&fiber.Cookie{

+ 28 - 21
server/serv_web/web_gui/web_gui.go

@@ -29,18 +29,16 @@ func НовВебГуи(вебСервер types.ИВебСервер) (*Веб
 		файбер: вебСервер.Файбер(),
 	}
 	сам.файбер.Get("/", сам.индекс)
-	сам.файбер.Get("/gui/list_bot", сам.списокБотов)
-	сам.файбер.Get("/gui/add_bot", сам.гетБотНов)
-	сам.файбер.Get("/gui/bot/:number/state", сам.состояниеБота)
+	сам.файбер.Get("/gui/login", сам.логин)
+	сам.файбер.Get("/gui/list_bot", сам.кукиПроверить, сам.списокБотов)
+	сам.файбер.Get("/gui/add_bot", сам.кукиПроверить, сам.гетБотНов)
+	сам.файбер.Get("/gui/bot/:number/state", сам.кукиПроверить, сам.состояниеБота)
 	return сам, nil
 }
 
 // Показывает состояние бота по имени
 func (сам *ВебГуи) состояниеБота(кнт *fiber.Ctx) error {
-	имя := кнт.Cookies("login")
-	if имя != "svi" {
-		return кнт.Redirect("/", http.StatusSeeOther)
-	}
+	log.Printf("ВебГуи.состояниеБота()\n")
 	стрНомер := кнт.Params("number")
 	иНомер, ош := strconv.Atoi(стрНомер)
 	if ош != nil {
@@ -97,11 +95,7 @@ func (сам *ВебГуи) состояниеБота(кнт *fiber.Ctx) error
 
 // Показывает страницу добавления бота
 func (сам *ВебГуи) гетБотНов(кнт *fiber.Ctx) error {
-	имя := кнт.Cookies("login")
-	if имя != "svi" {
-		return кнт.Redirect("/", http.StatusSeeOther)
-	}
-	log.Printf("ВебГуи.гетБотНов(): логин=%s\n", имя)
+	log.Printf("ВебГуи.гетБотНов()\n")
 	return кнт.Render("add_bot", fiber.Map{
 		"Title": "WarTank",
 	})
@@ -109,11 +103,7 @@ func (сам *ВебГуи) гетБотНов(кнт *fiber.Ctx) error {
 
 // Возвращает страницу со списком ботов
 func (сам *ВебГуи) списокБотов(кнт *fiber.Ctx) error {
-	имя := кнт.Cookies("login")
-	if имя != "svi" {
-		return кнт.Redirect("/", http.StatusSeeOther)
-	}
-	log.Printf("ВебГуи.списокБотов(): логин=%s\n", имя)
+	log.Printf("ВебГуи.списокБотов()\n")
 	списокБотов := сам.серв.ServBots().ListBot()
 	списокБот := make(map[alias.БотНомер]string, 0)
 	for _, бот := range списокБотов {
@@ -127,12 +117,29 @@ func (сам *ВебГуи) списокБотов(кнт *fiber.Ctx) error {
 
 // Возвращает индексную страницу
 func (сам *ВебГуи) индекс(кнт *fiber.Ctx) error {
+	log.Printf("ВебГуи.индекс()\n")
 	имя := кнт.Cookies("login")
 	if имя != "svi" {
-		return кнт.Render("index", fiber.Map{
-			"Title": "WarTank",
-			"err":   "Неправильный логин",
-		})
+		return кнт.Redirect("/gui/login", http.StatusSeeOther)
 	}
 	return кнт.Redirect("/gui/list_bot", http.StatusSeeOther)
 }
+
+// Возвращает страницу логина
+func (сам *ВебГуи) логин(кнт *fiber.Ctx) error {
+	log.Printf("ВебГуи.логин()\n")
+	return кнт.Render("login", fiber.Map{
+		"Title": "WarTank",
+		"err":   "Неправильный логин",
+	})
+}
+
+// Проверка на куки
+func (sf *ВебГуи) кукиПроверить(кнт *fiber.Ctx) error {
+	log.Printf("ВебГуи.кукиПроверить()\n")
+	имя := кнт.Cookies("login")
+	if имя != "svi" {
+		return кнт.Redirect("/gui/login", http.StatusSeeOther)
+	}
+	return кнт.Next()
+}

+ 2 - 23
web/tmpl/index.tmpl.html

@@ -1,29 +1,8 @@
 {{ define "index" }}
 {{ template "header" . }}
-Стартовая страница игры вартанк.
+<h1>Стартовая страница игры вартанк</h1>
 
-<!-- Форма логина -->
-<form action="/api/login" method="POST" class="container border rounded">
-    <div class="row p-3">
-        <label for="login" class="col-2 form-label text-right">Логин:</label>
-        <input type="text" id="login" name="login" id="login" class="col form-control" placeholder="admin"><br><br>
-    </div>
-
-    <div class="row p-3">
-        <label for="password" class="col-2 form-label">Пароль:</label>
-        <input type="password" id="password" name="password" class="col form-control text-right"
-            placeholder="12345"><br><br>
-    </div>
-
-    <div class="row p-3">
-        <label class="col">:</label>
-        <input type="submit" class="col-2 btn btn-primary" value="Вход">
-    </div>
-</form>
-
-{{ if .err }}
-<p>{{ .err }}</p>
-{{ end }}
+С возвращением, SVI!
 
 {{ template "footer" . }}
 {{end}}

+ 29 - 0
web/tmpl/login.tmpl.html

@@ -0,0 +1,29 @@
+{{ define "login" }}
+{{ template "header" . }}
+<h1>Логин на сервер</h1>
+
+<!-- Форма логина -->
+<form action="/api/login" method="POST" class="container border rounded">
+    <div class="row p-3">
+        <label for="login" class="col-2 form-label text-right">Логин:</label>
+        <input type="text" id="login" name="login" id="login" class="col form-control" placeholder="admin"><br><br>
+    </div>
+
+    <div class="row p-3">
+        <label for="password" class="col-2 form-label">Пароль:</label>
+        <input type="password" id="password" name="password" class="col form-control text-right"
+            placeholder="12345"><br><br>
+    </div>
+
+    <div class="row p-3">
+        <label class="col">:</label>
+        <input type="submit" class="col-2 btn btn-primary" value="Вход">
+    </div>
+</form>
+
+{{ if .err }}
+<p>{{ .err }}</p>
+{{ end }}
+
+{{ template "footer" . }}
+{{end}}