MCPcopy Create free account
hub / github.com/TalkingData/owl / Login

Function Login

api/users.go:268–311  ·  view source on GitHub ↗
(c *gin.Context)

Source from the content-addressed store, hash-verified

266}
267
268func Login(c *gin.Context) {
269 response := gin.H{"code": http.StatusOK}
270 defer c.JSON(http.StatusOK, response)
271 var (
272 tokenString string
273 err error
274 )
275 switch c.Request.Method {
276 case "GET", "get":
277 tokenString = c.DefaultQuery("token", "")
278 if _, err = ValidateToken(tokenString); err != nil {
279 fmt.Println("validateToken error:", err.Error())
280 response["code"] = http.StatusBadRequest
281 response["message"] = err.Error()
282 return
283 }
284
285 case "POST", "post":
286 username, _ := c.GetPostForm("username")
287 password, _ := c.GetPostForm("password")
288 username, password = strings.TrimSpace(username), strings.TrimSpace(password)
289 user := mydb.getUserProfile(username)
290 if user == nil {
291 response["code"] = http.StatusUnauthorized
292 response["message"] = "user not found"
293 return
294 }
295 if user.Password != password || user.Username != username {
296 response["code"] = http.StatusUnauthorized
297 response["message"] = "username or password is wrong"
298 return
299 }
300 tokenString, err = GenerateToken(username, user)
301 if err != nil {
302 response["code"] = http.StatusInternalServerError
303 response["message"] = "generate token failed"
304 return
305 }
306 response["token"] = tokenString
307 }
308 c.SetCookie("token", tokenString, 86400, "/", "", false, true)
309 response["code"] = http.StatusTemporaryRedirect
310 response["link"] = "/"
311}
312
313func Logout(c *gin.Context) {
314 tokenString, err := c.Cookie("token")

Callers

nothing calls this directly

Calls 3

ValidateTokenFunction · 0.85
GenerateTokenFunction · 0.85
getUserProfileMethod · 0.80

Tested by

no test coverage detected