簡體   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