为了账号安全,请及时绑定邮箱和手机立即绑定

从多错误类型中检测特定错误

从多错误类型中检测特定错误

Go
慕勒3428872 2023-06-12 16:39:50
尝试区分错误的用户 cookie 错误与使用gorilla/sessionseg 的内部错误import "github.com/gorilla/sessions"sess, err := store.Get(r, sessName)if err != nil {    // either user error (bad-cookie i.e. invalid HMAC)    //      http.Error(w, "not authenticated", http.StatusUnauthorized)    // or server error (FileSystemStore i/o)    //      http.Error(w, "internal error", http.StatusInternalServerError)    return}底层securecookie包有一个针对错误用户 cookie 的导出错误ErrMacInvalid。所以通常人们只会检查这个特定的错误,但这不起作用:import "github.com/gorilla/securecookie"if err == securecookie.ErrMacInvalid {    // bad user-cookie} else if err != nil {    // otherwise internal error}它不起作用的原因 - 使用 say作为会话存储 - 是它将返回类型为securecookie.MultiError (一种类型)securecookie.NewCookieStore()的错误,其值列在错误片中。[]errorsecurecookie.ErrMacInvalid尝试这样的事情似乎很复杂:if e2, ok := err.(securecookie.MultiError); ok && len(e2) > 0 && e2[0] == securecookie.ErrMacInvalid { {    // bad user-cookie} else if err != nil {    // otherwise internal error}有更容易的方法吗?
查看完整描述

1 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

有更容易的方法吗?

不,对不起。


查看完整回答
反对 回复 2023-06-12
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信