我目前正在为我的Go网络应用程序添加JWT身份验证,当涉及到go中的类型转换和自动恐慌(如果它失败)时我有一些担忧.我的代码如下所示:
(c是上下文包)
user := c.Get("user")
token := user.(*jwt.Token)
claims := token.Claims.(jwt.MapClaims)
fmt.Println("Username: ", claims["name"], "User ID: ", claims["jti"])
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我在多行上使用了类型转换,但如果此操作失败,它将会出现紧急情况并最终导致服务器崩溃.在这种情况下有没有可能的方法来检查错误?
我对Go的Web开发很新,所以我很抱歉,所有的帮助表示赞赏!
键入assertions(somevar.(sometype))返回a (sometype, bool),所以你可以检查bool.惯用的是:
token, ok := user.(*jwt.Token)
if !ok {
// handle the fail case. `token` is nil here.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
388 次 |
| 最近记录: |