将 Firebase 身份验证与 Spring Boot 应用程序配合使用

using firebase auth with spring boot application

提问人:Arnob 提问时间:11/6/2023 更新时间:11/6/2023 访问量:24

问:

我正在将 firebase 客户端 sdk 用于我的客户端应用程序。然后,将 idToken 用作持有者令牌,并将每个请求发送到后端。

现在,securityConfig 类如下所示:

@Configuration
public class SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http.authorizeHttpRequests(authorizeRequests -> authorizeRequests
                .anyRequest().authenticated());
        http.oauth2ResourceServer(oauth2ResourceServer -> oauth2ResourceServer.jwt(Customizer.withDefaults()));
        http.cors(
                cors -> cors.configurationSource(request -> new org.springframework.web.cors.CorsConfiguration().applyPermitDefaultValues())
        );
        return http.build();
    }
}

我关注了以下文章:

基本上,我将我的 Spring 应用程序配置为资源服务器,并提供了一个 URL,可以在其中下载用于验证的公钥。

我写的一个非常基本的控制器:

@RestController
@RequestMapping("/api/v1/employees")
public class UserController {
    @GetMapping("/get")
    public String user1(Principal principal) {
        String uuid = principal.getName();
        String userEmail = findUserEmail(uuid);
        return "Hello " + uuid + " " + userEmail;
    }

    public String findUserEmail(String userId) {
        try {
            UserRecord userRecord = FirebaseAuth.getInstance().getUser(userId);
            String userEmail = userRecord.getEmail();
            return userEmail;
        } catch (FirebaseAuthException e) {
            // Handle any errors, such as user not found
            e.printStackTrace();
            return null;
        }
    }
}

系统工作正常。但我有点担心,因为这是我迄今为止从未见过的方法。到目前为止,我看到的大多数应用程序看起来都像是另一篇中型文章

我想知道这两种方法之间的区别以及每种方法的安全问题。

spring-boot firebase firebase-admin

评论


答: 暂无答案