Kotlin中如何从解码后的JWT获取嵌套JsonObject及hasura下的id
解决JWT解码无法获取嵌套JsonObject的问题
- 先确认你的数据类定义是否和JWT payload结构完全匹配,这是
asObject返回null的常见原因。针对你的payload,Kotlin数据类要这么写:
data class UserMetadata( val hasura: Hasura ) data class Hasura( val id: String )
若数据类没问题,检查JWT payload是否完整,排除编码或传输过程中出现的截断、格式错误。
也可以绕过对象映射,直接解析成Map逐层取值:
val userMetadataClaim = jwt.getClaim("user_metadata") val userMetadataMap = userMetadataClaim.asMap() ?: emptyMap() val hasuraMap = userMetadataMap["hasura"] as? Map<*, *> ?: emptyMap() val hasuraId = hasuraMap["id"] as? String
内容的提问来源于stack exchange,提问作者Tarık
相关产品推荐
相关产品推荐

