|
...
|
...
|
@@ -108,8 +108,14 @@ func AccessToken(request *protocol.AccessTokenRequest) (rsp *protocol.AccessToke |
|
|
|
err = protocol.NewErrWithMessage(1, fmt.Errorf("jwt authCode (%v) valid", request.AuthCode))
|
|
|
|
return
|
|
|
|
}
|
|
|
|
rsp.AccessToken, _ = utils.GenerateToken(claim.UserId, claim.Phone, protocol.TokenExpire*time.Second)
|
|
|
|
rsp.RefreshToken, _ = utils.GenerateToken(claim.UserId, claim.Phone, protocol.RefreshTokenExipre*time.Second)
|
|
|
|
userClaims := utils.UserTokenClaims{
|
|
|
|
UserId: claim.UserId,
|
|
|
|
CompanyId: claim.CompanyId,
|
|
|
|
AdminType: claim.AdminType,
|
|
|
|
Phone: claim.Phone,
|
|
|
|
}
|
|
|
|
rsp.AccessToken, _ = utils.GenerateTokenWithClaim(userClaims, protocol.TokenExpire*time.Second)
|
|
|
|
rsp.RefreshToken, _ = utils.GenerateTokenWithClaim(userClaims, protocol.RefreshTokenExipre*time.Second)
|
|
|
|
rsp.ExpiresIn = protocol.TokenExpire
|
|
|
|
|
|
|
|
//auth := userAuth.NewRedisUserAuth(userAuth.WithUserId(claim.UserId),
|
|
...
|
...
|
@@ -124,13 +130,16 @@ func AccessToken(request *protocol.AccessTokenRequest) (rsp *protocol.AccessToke |
|
|
|
|
|
|
|
func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshTokenResponse, err error) {
|
|
|
|
var (
|
|
|
|
claim *utils.UserTokenClaims
|
|
|
|
transactionContext, _ = factory.CreateTransactionContext(nil)
|
|
|
|
PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext)
|
|
|
|
PartnerSubAccountRepository, _ = factory.CreatePartnerSubAccountRepository(transactionContext)
|
|
|
|
claim *utils.UserTokenClaims
|
|
|
|
transactionContext, _ = factory.CreateTransactionContext(nil)
|
|
|
|
PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext)
|
|
|
|
//PartnerSubAccountRepository, _ = factory.CreatePartnerSubAccountRepository(transactionContext)
|
|
|
|
UsersRepository, _ = factory.CreateUsersRepository(transactionContext)
|
|
|
|
|
|
|
|
partnerInfo *domain.PartnerInfo
|
|
|
|
partnerSubAccount *domain.PartnerSubAccount
|
|
|
|
partnerInfo *domain.PartnerInfo
|
|
|
|
//partnerSubAccount *domain.PartnerSubAccount
|
|
|
|
user *domain.Users
|
|
|
|
userId int64
|
|
|
|
)
|
|
|
|
|
|
|
|
if err = transactionContext.StartTransaction(); err != nil {
|
|
...
|
...
|
@@ -151,14 +160,29 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT |
|
|
|
}
|
|
|
|
|
|
|
|
//验证用户有效
|
|
|
|
var e error
|
|
|
|
if partnerSubAccount, e = PartnerSubAccountRepository.FindOne(map[string]interface{}{"account": claim.Phone}); e == nil {
|
|
|
|
partnerInfo, e = PartnerInfoService.FindOne(map[string]interface{}{"id": partnerSubAccount.PartnerId})
|
|
|
|
} else {
|
|
|
|
partnerInfo, e = PartnerInfoService.FindOne(map[string]interface{}{"account": claim.Phone})
|
|
|
|
}
|
|
|
|
if e != nil || partnerInfo == nil || !partnerInfo.IsEnable() || partnerInfo.Id != claim.UserId {
|
|
|
|
err = protocol.NewErrWithMessage(4140) //账号禁用
|
|
|
|
//var e error
|
|
|
|
//if partnerSubAccount, e = PartnerSubAccountRepository.FindOne(map[string]interface{}{"account": claim.Phone}); e == nil {
|
|
|
|
// partnerInfo, e = PartnerInfoService.FindOne(map[string]interface{}{"id": partnerSubAccount.PartnerId})
|
|
|
|
//} else {
|
|
|
|
// partnerInfo, e = PartnerInfoService.FindOne(map[string]interface{}{"account": claim.Phone})
|
|
|
|
//}
|
|
|
|
switch claim.AdminType {
|
|
|
|
case 1:
|
|
|
|
if user, err = UsersRepository.FindOne(map[string]interface{}{"phone": claim.Phone, "companyId": claim.CompanyId, "status": 1}); err != nil || user != nil {
|
|
|
|
err = protocol.NewErrWithMessage(4140, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
userId = user.Id
|
|
|
|
break
|
|
|
|
case 2:
|
|
|
|
if partnerInfo, err = PartnerInfoService.FindOne(map[string]interface{}{"account": claim.Id, "companyId": claim.CompanyId, "status": 1}); err != nil || partnerInfo == nil {
|
|
|
|
err = protocol.NewErrWithMessage(4140, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
userId = partnerInfo.Id
|
|
|
|
break
|
|
|
|
default:
|
|
|
|
err = protocol.NewErrWithMessage(4140, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -168,8 +192,8 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT |
|
|
|
// err = protocol.NewErrWithMessage(4140, err)
|
|
|
|
// return
|
|
|
|
//}
|
|
|
|
rsp.AccessToken, _ = utils.GenerateToken(claim.UserId, claim.Phone, protocol.TokenExpire*time.Second)
|
|
|
|
rsp.RefreshToken, _ = utils.GenerateToken(claim.UserId, claim.Phone, protocol.RefreshTokenExipre*time.Second)
|
|
|
|
rsp.AccessToken, _ = utils.GenerateTokenWithAdminType(userId, claim.Phone, claim.AdminType, protocol.TokenExpire*time.Second)
|
|
|
|
rsp.RefreshToken, _ = utils.GenerateTokenWithAdminType(userId, claim.Phone, claim.AdminType, protocol.RefreshTokenExipre*time.Second)
|
|
|
|
rsp.ExpiresIn = protocol.TokenExpire
|
|
|
|
|
|
|
|
//newAuth := userAuth.NewRedisUserAuth(userAuth.WithUserId(claim.UserId),
|
|
...
|
...
|
@@ -251,6 +275,10 @@ func CenterCompanys(header *protocol.RequestHeader, request *protocolx.CenterCom |
|
|
|
}
|
|
|
|
switch request.GrantType {
|
|
|
|
case protocol.LoginByPassword:
|
|
|
|
if len(request.Password) == 0 {
|
|
|
|
err = protocol.NewCustomMessage(1, "密码不能为空!")
|
|
|
|
return
|
|
|
|
}
|
|
|
|
if loginSvr.ManagerLogin(request.Phone, request.Password) != nil && loginSvr.PartnerLogin(request.Phone, request.Password) != nil {
|
|
|
|
err = protocol.NewCustomMessage(1, "密码输入有误!")
|
|
|
|
return
|
|
...
|
...
|
@@ -342,12 +370,12 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) ( |
|
|
|
}
|
|
|
|
switch request.IdType {
|
|
|
|
case int(protocolx.AdminTypePartner):
|
|
|
|
if p, e := PartnerInfoRepository.FindOne(map[string]interface{}{"account": claim.Phone, "company_id": request.Cid, "status": 1}); e == nil {
|
|
|
|
if p, e := PartnerInfoRepository.FindOne(map[string]interface{}{"account": claim.Phone, "companyId": request.Cid, "status": 1}); e == nil {
|
|
|
|
userId = p.Id
|
|
|
|
}
|
|
|
|
break
|
|
|
|
case int(protocolx.AdminTypeManager):
|
|
|
|
if p, e := UsersRepository.FindOne(map[string]interface{}{"phone": claim.Phone, "company_id": request.Cid, "status": 1}); e == nil {
|
|
|
|
if p, e := UsersRepository.FindOne(map[string]interface{}{"phone": claim.Phone, "companyId": request.Cid, "status": 1}); e == nil {
|
|
|
|
userId = p.Id
|
|
|
|
}
|
|
|
|
break
|
|
...
|
...
|
@@ -360,7 +388,13 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) ( |
|
|
|
return
|
|
|
|
}
|
|
|
|
//根据simnum + cid
|
|
|
|
rsp.AuthCode, _ = utils.GenerateTokenWithAdminType(userId, claim.Phone, request.IdType, protocol.AuthCodeExpire*time.Second)
|
|
|
|
userClaims := utils.UserTokenClaims{
|
|
|
|
UserId: userId,
|
|
|
|
CompanyId: claim.CompanyId,
|
|
|
|
AdminType: claim.AdminType,
|
|
|
|
Phone: claim.Phone,
|
|
|
|
}
|
|
|
|
rsp.AuthCode, _ = utils.GenerateTokenWithClaim(userClaims, protocol.AuthCodeExpire*time.Second)
|
|
|
|
|
|
|
|
err = transactionContext.CommitTransaction()
|
|
|
|
return
|
...
|
...
|
|