提问人:Arnob 提问时间:11/6/2023 更新时间:11/6/2023 访问量:24
将 Firebase 身份验证与 Spring Boot 应用程序配合使用
using firebase auth with spring boot application
问:
我正在将 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;
}
}
}
系统工作正常。但我有点担心,因为这是我迄今为止从未见过的方法。到目前为止,我看到的大多数应用程序看起来都像是另一篇中型文章。
我想知道这两种方法之间的区别以及每种方法的安全问题。
答: 暂无答案
评论