|
|
@@ -73,9 +73,10 @@ func (us *UserService) GenerateToken(u *model.User) string {
|
|
73
|
73
|
func (us *UserService) Login(u *model.User, llog *model.LoginLog) *model.UserToken {
|
|
74
|
74
|
token := us.GenerateToken(u)
|
|
75
|
75
|
ut := &model.UserToken{
|
|
76
|
|
- UserId: u.Id,
|
|
77
|
|
- Token: token,
|
|
78
|
|
- ExpiredAt: time.Now().Add(time.Hour * 24 * 7).Unix(),
|
|
|
76
|
+ UserId: u.Id,
|
|
|
77
|
+ Token: token,
|
|
|
78
|
+ DeviceUuid: llog.Uuid,
|
|
|
79
|
+ ExpiredAt: time.Now().Add(time.Hour * 24 * 7).Unix(),
|
|
79
|
80
|
}
|
|
80
|
81
|
global.DB.Create(ut)
|
|
81
|
82
|
llog.UserTokenId = ut.UserId
|
|
|
@@ -153,9 +154,27 @@ func (us *UserService) Create(u *model.User) error {
|
|
153
|
154
|
return res
|
|
154
|
155
|
}
|
|
155
|
156
|
|
|
156
|
|
-// Logout 退出登录
|
|
|
157
|
+// GetUuidByToken 根据token和user取uuid
|
|
|
158
|
+func (us *UserService) GetUuidByToken(u *model.User, token string) string {
|
|
|
159
|
+ ut := &model.UserToken{}
|
|
|
160
|
+ err :=global.DB.Where("user_id = ? and token = ?", u.Id, token).First(ut).Error
|
|
|
161
|
+ if err != nil {
|
|
|
162
|
+ return ""
|
|
|
163
|
+ }
|
|
|
164
|
+ return ut.DeviceUuid
|
|
|
165
|
+}
|
|
|
166
|
+
|
|
|
167
|
+// Logout 退出登录 -> 删除token, 解绑uuid
|
|
157
|
168
|
func (us *UserService) Logout(u *model.User, token string) error {
|
|
158
|
|
- return global.DB.Where("user_id = ? and token = ?", u.Id, token).Delete(&model.UserToken{}).Error
|
|
|
169
|
+ uuid := us.GetUuidByToken(u, token)
|
|
|
170
|
+ err := global.DB.Where("user_id = ? and token = ?", u.Id, token).Delete(&model.UserToken{}).Error
|
|
|
171
|
+ if err != nil {
|
|
|
172
|
+ return err
|
|
|
173
|
+ }
|
|
|
174
|
+ if uuid != "" {
|
|
|
175
|
+ AllService.PeerService.UuidUnbindUserId(uuid, u.Id)
|
|
|
176
|
+ }
|
|
|
177
|
+ return nil
|
|
159
|
178
|
}
|
|
160
|
179
|
|
|
161
|
180
|
// Delete 删除用户和oauth信息
|