Skip to content

Commit

Permalink
refactor: unified cookie error
Browse files Browse the repository at this point in the history
  • Loading branch information
jiuxia211 committed Dec 7, 2024
1 parent 1dcbfb7 commit 86066db
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 10 deletions.
4 changes: 1 addition & 3 deletions errno/default.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,9 @@ var (

// User
AccountConflictError = NewErrNo(AuthorizationFailedErrCode, "account conflict")
CookieExpiredError = NewErrNo(AuthorizationFailedErrCode, "cookie expired")
CookieError = NewErrNo(AuthorizationFailedErrCode, "id error or session expired")
LoginCheckFailedError = NewErrNo(AuthorizationFailedErrCode, "login check failed")
SSOLoginFailedError = NewErrNo(AuthorizationFailedErrCode, "sso login failed")
GetCookieFailedError = NewErrNo(AuthorizationFailedErrCode, "get cookie failed")


// HTTP
HTTPQueryError = NewErrNo(HTTPQueryErrorCode, "HTTP query failed")
Expand Down
8 changes: 4 additions & 4 deletions jwch.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,12 @@ func (s *Student) NewRequest() *resty.Request {
func (s *Student) GetWithIdentifier(url string) (*html.Node, error) {
resp, err := s.NewRequest().SetHeader("Referer", constants.JwchReferer).SetQueryParam("id", s.Identifier).Get(url)
if err != nil {
return nil, errno.CookieExpiredError.WithErr(err)
return nil, errno.SSOLoginFailedError.WithErr(err)
}

// 会话过期 TODO: 判断条件有点简陋
if strings.Contains(string(resp.Body()), "重新登录") {
return nil, errno.CookieExpiredError
return nil, errno.SSOLoginFailedError
}

return htmlquery.Parse(bytes.NewReader(resp.Body()))
Expand All @@ -97,12 +97,12 @@ func (s *Student) PostWithIdentifier(url string, formData map[string]string) (*h
s.NewRequest().EnableTrace()

if err != nil {
return nil, errno.CookieExpiredError.WithErr(err)
return nil, errno.SSOLoginFailedError.WithErr(err)
}

// Identifier缺失 TODO: 判断条件有点简陋
if strings.Contains(string(resp.Body()), "处理URL失败") {
return nil, errno.CookieExpiredError
return nil, errno.SSOLoginFailedError
}

return htmlquery.Parse(strings.NewReader(strings.TrimSpace(string(resp.Body()))))
Expand Down
6 changes: 3 additions & 3 deletions user.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,13 +127,13 @@ func (s *Student) Login() error {

// 这里是err == nil 因为禁止了重定向,正常登录是会出现异常的
if err == nil {
return errno.GetCookieFailedError
return errno.SSOLoginFailedError
}

data := regexp.MustCompile(`id=(.*?)&`).FindStringSubmatch(err.Error())

if len(data) < 1 {
return errno.CookieExpiredError
return errno.SSOLoginFailedError
}

s.SetIdentifier(data[1])
Expand Down Expand Up @@ -167,7 +167,7 @@ func (s *Student) CheckSession() error {
res := htmlquery.FindOne(resp, `//*[@id="ContentPlaceHolder1_LB_xh"]`)

if res == nil {
return errno.CookieExpiredError.WithErr(err)
return errno.SSOLoginFailedError.WithErr(err)
}

if htmlquery.OutputHTML(res, false) != s.ID {
Expand Down

0 comments on commit 86066db

Please sign in to comment.