I trying to code a login demo, now I can enter the username and password to server to check,
but how can I pass the mysql data to client-side?
which step am I wrong?
main.go
func main() {
server := gin.Default()
server.LoadHTMLGlob("template/html/*")
server.Static("/assets", "./template/assets")
server.GET("/login", LoginPage)
server.POST("/login", LoginAuth)
server.GET("/chat", ChatPage)
server.Run(":5000")
}
in main.go just gin serve the server
auth.go
func ChatPage(c *gin.Context) {
nickname := c.Query("nickname")
c.HTML(http.StatusOK, "index.html", gin.H{
"nickname": nickname,
})
fmt.Println("chat page nickname: ", nickname)
}
func LoginAuth(c *gin.Context) {
var (
username string
password string
)
if nickname, err := Auth(username, password); err == nil {
c.Redirect(http.StatusMovedPermanently, "/chat?nickname="+nickname)
}
}
func Auth(usernameIn, passwordIn string) (string, error) {
dsn := fmt.Sprintf("%s:%s@%s(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", USERNAME, PASSWORD, NETWORK, SERVER, PORT, DATABASE)
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if user, err := FindUser(db, usernameIn); err != nil {
return "", errors.New("user not found")
} else {
return CheckPassword(db, user, passwordIn)
}
}
when checked the data, how should I pass the password from auth.go to main.js?
main.js
const params = new Proxy(new URLSearchParams(window.location.search), {
get: (searchParams, prop) => searchParams.get(prop),
});
var PERSON_NAME = params.nickname;
this is some answer on net but its not work.