繁体   English   中英

在 controller 中获取 firebase 身份验证令牌 uid

[英]Get firebase authentication token uid in controller

我发现自己正在努力寻找正确的方法来处理我的问题。 我有一个简单的 spring 引导 api,它验证 header 中给出的 JWT 令牌。此令牌是通过 Firebase 身份验证在客户端生成的。

@Configuration
@EnableWebSecurity
class SecurityConfig {
    @Bean
    @Throws(java.lang.Exception::class)
    fun securityFilterChain(http: HttpSecurity): SecurityFilterChain {
        http.cors().and().csrf().disable();
        return http.authorizeHttpRequests { request ->
            request.antMatchers("/appauth/**").authenticated()
            request.and().oauth2ResourceServer().jwt()
        }.build()
    }
}

我有这个简单的安全链来验证来自 api 的即将到来的令牌。到目前为止一切似乎都有效。

但是我应该如何处理需要在令牌本身中找到的 uid 的 api 请求? 在每次需要 uid 的支票上传递 header 听起来很糟糕。 然后每次在每次请求时都从令牌中提取它。 似乎应该有更好的方法

@GetMapping(path = ["/projects"])
fun getProjects(): String {
    val user = someRepository.getUserByUid(uid)
    return user.projects
}

我不想将 uid 作为查询参数传递。 因为那将是一个巨大的安全风险

炮兵在这里

大多数 Firebase 服务完全按照您的描述工作:客户端在每次调用或每次连接时传递 ID 令牌(取决于服务),服务对这些进行解码并保留最近令牌及其解码版本的缓存,以防止对同一令牌进行解码和结束。 因此,对于您自己的 API 服务,这可能也是一个好方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM