fix: recover stale IM member credentials
This commit is contained in:
@@ -102,6 +102,17 @@ func (s *Service) OpenSession(ctx context.Context, tenantID, memberID, serviceID
|
||||
return nil, fmt.Errorf("decrypt IM credential: %w", err)
|
||||
}
|
||||
imSession, err := s.im.LoginBasic(ctx, identity.IMUsername, password, strings.TrimSpace(in.DeviceID), platform)
|
||||
if imclient.IsAuthenticationFailed(err) {
|
||||
identity, err = s.resetAndSaveCredential(ctx, identity)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("repair IM credential: %w", err)
|
||||
}
|
||||
password, err = s.decryptCredential(identity.IMPasswordCipher)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("decrypt repaired IM credential: %w", err)
|
||||
}
|
||||
imSession, err = s.im.LoginBasic(ctx, identity.IMUsername, password, strings.TrimSpace(in.DeviceID), platform)
|
||||
}
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("login IM session: %w", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user