1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package api
- import (
- "encoding/base64"
- "fmt"
- "gadmin/config"
- "gadmin/internal/admin/forms"
- "gadmin/internal/admin/service"
- "gadmin/utility/serializer"
- "gadmin/utility/token"
- "github.com/gin-gonic/gin"
- jsoniter "github.com/json-iterator/go"
- "time"
- )
- // ServiceList 获取系统列表
- func ServiceList(c *gin.Context) {
- services, err := service.Service.ServiceList(c)
- if err != nil {
- c.JSON(200, ErrorResponse(err))
- return
- }
- c.JSON(200, serializer.Suc(services, "获取成功"))
- }
- // ServiceSelect 选择系统
- func ServiceSelect(c *gin.Context) {
- req := new(forms.ServiceSelectReq)
- if err := c.ShouldBind(req); err != nil {
- c.JSON(200, ErrorResponse(err))
- return
- }
- res, ok := c.Get("user")
- if !ok {
- c.JSON(200, ErrorResponse(fmt.Errorf("获取用户信息失败")))
- return
- }
- user := res.(*token.UserClaims)
- //user.SystemId = req.SystemId
- //userStr, err := jsoniter.MarshalToString(user)
- //if err != nil {
- // c.JSON(200, ErrorResponse(err))
- // return
- //}
- //
- //config.TokenRedis.Set(config.GetTokenKey(user.AccessToken), userStr, config.TokenExpireTime)
- //c.JSON(200, serializer.Suc("ok"))
- // 重新生成新的token,解决浏览器回退问题
- t := token.GenerateTokenUsingUUID()
- // 记录登录token
- key := config.GetUserTokenKey(user.ID)
- config.TokenRedis.HSet(key, t, time.Now().Unix())
- config.TokenRedis.Expire(key, time.Hour*12)
- tokenKey := config.GetTokenKey(t)
- u := &token.UserClaims{
- ID: user.ID,
- UserName: user.UserName,
- RoleId: user.RoleId,
- Avatar: user.Avatar,
- Nickname: user.Nickname,
- AccessToken: t,
- SystemId: req.SystemId,
- }
- userStr, err := jsoniter.MarshalToString(u)
- if err != nil {
- c.JSON(200, ErrorResponse(err))
- }
- config.TokenRedis.Set(tokenKey, userStr, time.Hour*12)
- c.JSON(200, serializer.Suc(map[string]string{"token": base64.URLEncoding.EncodeToString([]byte(t))}))
- }
|