first commit
This commit is contained in:
90
user/userlogin.go
Normal file
90
user/userlogin.go
Normal file
@@ -0,0 +1,90 @@
|
||||
package user
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
"go.mongodb.org/mongo-driver/mongo"
|
||||
"go.mongodb.org/mongo-driver/mongo/options"
|
||||
)
|
||||
|
||||
type Userloginstruct struct {
|
||||
Email string `json:"email"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
|
||||
type Loginresponse struct {
|
||||
Success string `json:"success"`
|
||||
Message string `json:"message"`
|
||||
Token string `json:"token"`
|
||||
}
|
||||
|
||||
func Userlogin(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Access-Control-Allow-Origin", "http://localhost:5173")
|
||||
w.Header().Set("Access-Control-Allow-Methods", "GET, POST, OPTIONS")
|
||||
w.Header().Set("Access-Control-Allow-Headers", "Content-Type")
|
||||
w.Header().Set("Access-Control-Allow-Credentials", "true")
|
||||
|
||||
if r.Method == "OPTIONS" {
|
||||
w.WriteHeader(http.StatusOK)
|
||||
return
|
||||
}
|
||||
|
||||
body, error := io.ReadAll(r.Body)
|
||||
if error != nil {
|
||||
fmt.Println("数据读取失败")
|
||||
return
|
||||
}
|
||||
fmt.Println(string(body))
|
||||
var userinfo Userloginstruct
|
||||
error = json.Unmarshal(body, &userinfo)
|
||||
if error != nil {
|
||||
fmt.Println("数据解析失败")
|
||||
return
|
||||
}
|
||||
|
||||
mongocli := options.Client().ApplyURI("mongodb://localhost:27017")
|
||||
|
||||
mongoclient, error := mongo.Connect(context.TODO(), mongocli)
|
||||
if error != nil {
|
||||
fmt.Println("数据库连接失败")
|
||||
}
|
||||
|
||||
finduser := mongoclient.Database("user").Collection("userlist")
|
||||
|
||||
filter := bson.M{"email": userinfo.Email, "password": userinfo.Password}
|
||||
|
||||
type theuser struct {
|
||||
Email string `json:"email"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
|
||||
var oneuser theuser
|
||||
|
||||
error = finduser.FindOne(context.Background(), filter).Decode(&oneuser)
|
||||
if error != nil {
|
||||
fmt.Println("未找到该用户")
|
||||
loginres := Loginresponse{
|
||||
Success: "no",
|
||||
Message: "登录失败",
|
||||
Token: "0",
|
||||
}
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
json.NewEncoder(w).Encode(loginres)
|
||||
return
|
||||
} else {
|
||||
loginres := Loginresponse{
|
||||
Success: "yes",
|
||||
Message: "登录成功",
|
||||
Token: "1",
|
||||
}
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
json.NewEncoder(w).Encode(loginres)
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user