1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package login
- import (
- "context"
- "git.listensoft.net/tool/jspkit/common"
- "git.listensoft.net/tool/jspkit/common/lxrod"
- "git.listensoft.net/tool/jspkit/common/models"
- "git.listensoft.net/tool/jspkit/taxerr"
- "github.com/go-rod/rod"
- "strings"
- )
- func Login(ctx context.Context, lr *lxrod.Lxrod, info *models.CompanyInfo) (p *rod.Page, err error) {
- defer func() {
- if err != nil && p != nil && p.GetContext().Err() == nil {
- lr.LoginErrImg = common.SaveErrImg(p, *info)
- }
- }()
- if info.Dlfs == "新版登录" || info.Dlfs == "代理登录" {
- _, p, err = lr.NewLowBrowser2(ctx)
- err = CheckSessionAndLogin(ctx, p, GetBaseUri(info.Area), *info)
- if err != nil {
- if info.Dlfs == "新版登录" && RetryErr(err) {
- err = qrLogin(p, info, lr)
- }
- if err != nil {
- return
- }
- }
- if strings.Contains(p.MustInfo().URL, "loginb") { //todo ctx中传递参数决定是否
- C, _ := lxrod.PageToClient(p, GetBaseUri(info.Area))
- err = AfterLogin(C, p, lr, *info, GetBaseUri(info.Area))
- }
- } else {
- err = taxerr.New("暂不支持的登录方式!")
- }
- return
- }
- func RetryErr(err error) bool {
- if strings.Contains(err.Error(), "卡顿") ||
- strings.Contains(err.Error(), "失效") ||
- strings.Contains(err.Error(), "cookie失效") ||
- strings.Contains(err.Error(), "网络超时,请稍后再试") ||
- strings.Contains(err.Error(), "character") ||
- strings.Contains(err.Error(), "登陆失败, 网络请求异常") ||
- strings.Contains(err.Error(), "登陆失败, 授权失败") ||
- strings.Contains(err.Error(), "登录失败: 内部服务错误") ||
- strings.Contains(err.Error(), "登陆失败,网络请求异常") {
- return true
- }
- return false
- }
|