package api import ( "ArmedPolice/app/controller/account" "ArmedPolice/app/service" "github.com/gin-gonic/gin" ) type Account struct{} /** * @apiDefine Account 账号管理 */ /** * @api {post} /api/v1/account/login 账号登录 * @apiVersion 1.0.0 * @apiName AccountLogin * @apiGroup Account * * @apiHeader {string} Content-Type=application/json 传输方式 * * @apiParam {Object} captcha 验证码信息 * @apiParam {String} captcha.key="key" 验证key * @apiParam {String} captcha.value="value" 验证value * @apiParam {String} account="admin" 登录账号 * @apiParam {String} password="123456" 登录密码 * * @apiSuccess (200) {Object} data 具体信息 * @apiSuccess (200) {String} data.token token信息,接口需要携带 * @apiSuccess (200) {Number} data.effect_time token有效时长,秒 * @apiSuccess (200) {Number} code 成功响应状态码! * @apiSuccess (200) {String} msg 成功提示 * * @apiSuccessExample {Json} Success response: * HTTPS 200 OK * { * "code": 200 * "msg": "ok" * "data": { * "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOiIxNjM4NjA0NDYwIiwiaWF0IjoiMTYzNjAxMjQ2MCIsInVpZCI6IjIwOTU2MTg2ODk5ODEyMjI5MTIifQ.Q4_peBb9aeGaZAfUFMMzn21cbfhY6_DEocI9xlj9v9g", * "effect_time": 2592000, * "ws_url": "", * } * } */ func (a *Account) Login(c *gin.Context) { form := &struct { Account string `json:"account" form:"account" binding:"required"` Password string `json:"password" form:"password" binding:"required"` Captcha struct { Key string `json:"key" form:"key"` Value string `json:"value" form:"value"` } `json:"captcha" form:"captcha"` }{} if err := bind(form)(c); err != nil { APIFailure(err.(error))(c) return } data, err := account.NewInstance()(nil).Login(form.Account, form.Password, form.Captcha.Key, form.Captcha.Value, c.ClientIP()) APIResponse(err, data)(c) } /** * @api {post} /api/v1/account/logout 账号退出 * @apiVersion 1.0.0 * @apiName AccountLogout * @apiGroup Account * * @apiHeader {string} x-token token * * @apiSuccess (200) {Number} code 成功响应状态码! * @apiSuccess (200) {String} msg 成功提示 * * @apiSuccessExample {json} Success response: * HTTPS 200 OK * { * "code": 200 * "msg": "ok" * "data": null * } */ func (a *Account) Logout(c *gin.Context) { handle := getSession()(c) session := new(service.Session) if handle != nil { session = handle.(*service.Session) } err := account.NewInstance()(session).Logout() APIResponse(err)(c) }