понять: из-за чего ok = false ?
Смотрю claims токена, вроде всё ок
Читать документацию)
это синтаксис проверки на указанный в скобках тип, то есть false значит что token.Claims не типа RefreshClaims
А вот почему? С access токеном всё ок. Я создаю токен, используя эту же структуру
ну вам как бы язык говорит, что это другой тип, дальше смотрите код
Уверены что *models.RefreshClaims не nil к примеру? Это же указатель.
Ну это структура в пакете models. И я делаю тип "указатель на структуру"
Я вот и не могу найти ошибку в коде:(
принты с %T вам в помощь)
Это чтобы узнать тип?
ага, оно напечатает тип переданной переменной
Ну переменная token.Claims выдало jwt.MapClaims. Ну это и понятно было изначально. Но судя же по мапе, которую я кидал выше, token.Claims может быть и моей структурой. Или я не прав? Просто с access токеном точно такой же код работает без проблем
вы пытаетесь привести структуру одного типа к другому типу - это так не работает
Тогда почему такой код отрабатыввает ? claims, ok := token.Claims.(*models.AccessClaims) для access токена type AccessClaims struct { jwt.StandardClaims AccessUUID uuid.UUID json:"access_uuid" UserUUID uuid.UUID json:"user_uuid" }
потому что в token.Claims изначально лежит значение типа AccessClaims
Обсуждают сегодня