|
@@ -5,11 +5,13 @@ import (
|
|
|
"github.com/ArtisanCloud/PowerWeChat/v2/src/kernel"
|
|
|
"github.com/suyuan32/simple-admin-common/msg/errormsg"
|
|
|
"github.com/zeromicro/go-zero/core/errorx"
|
|
|
+ "time"
|
|
|
"wechat-api/ent"
|
|
|
"wechat-api/ent/wxcarduser"
|
|
|
"wechat-api/internal/svc"
|
|
|
"wechat-api/internal/types"
|
|
|
"wechat-api/internal/utils/dberrorhandler"
|
|
|
+ "wechat-api/internal/utils/jwt"
|
|
|
|
|
|
mini "github.com/ArtisanCloud/PowerWeChat/v2/src/miniProgram"
|
|
|
"github.com/zeromicro/go-zero/core/logx"
|
|
@@ -61,10 +63,10 @@ func (l *DoApiUserLoginLogic) DoApiUserLogin(req *types.UserLoginReq) (*types.Us
|
|
|
return nil, errorx.NewApiInternalError("wechat login error")
|
|
|
}
|
|
|
|
|
|
- _, err = l.svcCtx.DB.WxCardUser.Query().Where(wxcarduser.OpenID(resp.OpenID)).First(l.ctx)
|
|
|
+ userInfo, err := l.svcCtx.DB.WxCardUser.Query().Where(wxcarduser.OpenID(resp.OpenID)).First(l.ctx)
|
|
|
if err != nil {
|
|
|
if ent.IsNotFound(err) {
|
|
|
- _, err = l.svcCtx.DB.WxCardUser.Create().
|
|
|
+ userInfo, err = l.svcCtx.DB.WxCardUser.Create().
|
|
|
SetOpenID(resp.OpenID).
|
|
|
SetUnionID(resp.UnionID).
|
|
|
SetSessionKey(resp.SessionKey).
|
|
@@ -82,8 +84,21 @@ func (l *DoApiUserLoginLogic) DoApiUserLogin(req *types.UserLoginReq) (*types.Us
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //TODO
|
|
|
- usertoken := types.UserToken{}
|
|
|
+ //TODO 这里需要改成实际用户的数据
|
|
|
+ dataArray := make([]jwt.Option, 0)
|
|
|
+ dataArray = append(dataArray, jwt.Option{
|
|
|
+ Key: "userId",
|
|
|
+ Val: userInfo.ID,
|
|
|
+ })
|
|
|
+ token, err := jwt.NewJwtToken(
|
|
|
+ l.svcCtx.Config.Auth.AccessSecret,
|
|
|
+ time.Now().Unix(),
|
|
|
+ 86400*30,
|
|
|
+ dataArray...,
|
|
|
+ )
|
|
|
+ if err != nil {
|
|
|
+ return nil, errorx.NewInvalidArgumentError(err.Error())
|
|
|
+ }
|
|
|
|
|
|
return &types.UserLoginResp{
|
|
|
BaseDataInfo: types.BaseDataInfo{
|
|
@@ -91,10 +106,10 @@ func (l *DoApiUserLoginLogic) DoApiUserLogin(req *types.UserLoginReq) (*types.Us
|
|
|
Msg: errormsg.Success,
|
|
|
},
|
|
|
Data: types.UserToken{
|
|
|
- ID: usertoken.ID,
|
|
|
- Token: usertoken.Token,
|
|
|
- Avatar: usertoken.Avatar,
|
|
|
- Nickname: usertoken.Nickname,
|
|
|
+ ID: &userInfo.ID,
|
|
|
+ Token: &token,
|
|
|
+ Avatar: &userInfo.Avatar,
|
|
|
+ Nickname: &userInfo.Nickname,
|
|
|
},
|
|
|
}, nil
|
|
|
}
|