initial commit
This commit is contained in:
54
controllers/user.go
Normal file
54
controllers/user.go
Normal file
@@ -0,0 +1,54 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"cloud.o-forge.io/core/oc-catalog/models"
|
||||
beego "github.com/beego/beego/v2/server/web"
|
||||
)
|
||||
|
||||
type UserController struct {
|
||||
beego.Controller
|
||||
}
|
||||
|
||||
// @Title Login
|
||||
// @Description Logs user into the system
|
||||
// @Param username query string true "The username for login"
|
||||
// @Param password query string true "The password for login"
|
||||
// @Success 200 {string} login success
|
||||
// @Failure 403 user not exist
|
||||
// @router /login [get]
|
||||
func (u *UserController) Login() {
|
||||
username := u.GetString("username")
|
||||
password := u.GetString("password")
|
||||
|
||||
if models.Login(username, password) {
|
||||
token, err := CreateToken(username)
|
||||
|
||||
if err != nil {
|
||||
u.Data["json"] = err.Error()
|
||||
u.Ctx.Output.Status = 503
|
||||
u.ServeJSON()
|
||||
return
|
||||
}
|
||||
|
||||
u.Ctx.SetCookie("token", token)
|
||||
u.Ctx.Output.Header("Authorization", token) //FIXME: Some more generic way to use the name of the header
|
||||
u.Data["json"] = "login success"
|
||||
u.ServeJSON()
|
||||
return
|
||||
|
||||
}
|
||||
u.Ctx.Output.Status = 403
|
||||
u.Data["json"] = "user not exist"
|
||||
u.ServeJSON()
|
||||
|
||||
}
|
||||
|
||||
// @Title logout
|
||||
// @Description Logs out current logged in user session
|
||||
// @Success 200 {string} logout success
|
||||
// // @Security mySecurityPathNameApiKey
|
||||
// @router /logout [get]
|
||||
func (u *UserController) Logout() {
|
||||
u.Data["json"] = "logout success"
|
||||
u.ServeJSON()
|
||||
}
|
||||
Reference in New Issue
Block a user