我正在努力了解如何在后端服务器中继续用户会话启动的客户端。
我的客户端应用程序使用NextJS
,后端api调用使用Gin
。
我有一些客户端代码,允许用户使用firebase auth:登录
import { getAuth, signInWithRedirect, GoogleAuthProvider } from 'firebase/auth'
export default function Login() {
const provider = new GoogleAuthProvider()
const auth = getAuth()
return (
<div>
<ul>
<li>
<button onClick={() => signInWithRedirect(auth, provider)}>Sign In With Google</button>
</li>
</ul>
</div>
)
}
这很好,我只需要做很少的工作。一旦用户点击按钮并按照登录说明操作,我的客户端应用程序就会了解他们在使用firebase库。
现在我想以当前用户的身份向我的go-gin后端发出请求。作为登录到我的客户端应用程序的用户,我如何在后端代码中继续会话?理想情况下,我能够:
- 以
user123
的身份登录客户端应用程序 - 向我的后端发出请求
- 我的后端了解到该请求来自我的客户端
user123
- 我的后端以
user123
的形式向其他firebase服务发出一些请求,比如创建或更新Firestore文档
我不知道如何做#3。这似乎是一件常见的事情,我正在积极研究我需要做什么。如果可以的话,我会回答我自己的问题,但任何建议都很感激。
您需要将用户的ID令牌从客户端传递到服务器,然后服务器可以验证ID令牌,并在此基础上确定用户是否获得授权。
但是,在对Firebase的调用中,无法从服务器模拟该用户。所以你必须自己做授权检查。