Go Firebase自定义身份验证传递令牌
我正在运行一个生成JWT令牌的Go服务器。我最初的计划是使用http.Redirect发送令牌,使用令牌字符串作为url的一部分 这似乎不起作用,因为我使用的是Firebase静态主机,因此只有客户端路由 我怎样才能推我的代币?也许吧Go Firebase自定义身份验证传递令牌,go,firebase,firebase-authentication,Go,Firebase,Firebase Authentication,我正在运行一个生成JWT令牌的Go服务器。我最初的计划是使用http.Redirect发送令牌,使用令牌字符串作为url的一部分 这似乎不起作用,因为我使用的是Firebase静态主机,因此只有客户端路由 我怎样才能推我的代币?也许吧 我正在“example.firebaseapp.com”(A)上运行我的staticSPA 我正在运行服务器,该服务器在“example.us-west-2.compute.amazonaws.com”(B)上生成令牌 cas服务器正在“”上运行(C) 当然还有
- 我正在“example.firebaseapp.com”(A)上运行我的staticSPA李>
- 我正在运行服务器,该服务器在“example.us-west-2.compute.amazonaws.com”(B)上生成令牌
- cas服务器正在“”上运行(C)
- 当然还有用户的计算机(D)
ref.authWithCustomToken(“AUTH_TOKEN”,函数(错误,authData){
如果我正确理解了流程,那么您缺少的是与应用程序用户对话的端点,该端点可以将令牌返回给该用户
解决方法是让用户应用程序通过一个高度不可用的值(“请求ID”)在第2步中,类似UUID的东西。然后,令牌服务器可以在第5步中
/tokens/
将令牌写入Firebase数据库,客户端正在侦听令牌。我不清楚您试图做什么。您在哪里运行Go服务器?您试图如何传递令牌?显示问题的代码可能会有很大帮助澄清。@FrankvanPuffelen我更新了我的帖子。我正在AWS上运行我的go服务器。我正在通过URL传递令牌,这确实有效,但静态服务器无法识别URL,因为它没有路由。代码的格式有点混乱。不知道为什么-如果你愿意,请随意编辑我的帖子。@ChrisW,你有没有收到过这样的消息找到答案了吗?我很好奇你最后做了什么,因为我正在考虑完全相同的工作流程。我们也使用CAS进行中央身份验证。是的!我按照Frank说的做了。我通过URL传递了令牌。谢谢,我会试试这个
func (h *myHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if !cas.IsAuthenticated(r) {
cas.RedirectToLogin(w, r)
return
}
if r.URL.Path == "/logout" {
cas.RedirectToLogout(w, r)
return
}
generatedToken := generateToken("uid") // token is created using a uid and a secret
redirectURL := websiteURL + generatedToken
println(redirectURL)
println(generatedToken)
http.Redirect(w, r, redirectURL, http.StatusFound) // I attempt to send the token using a redirect. This doesn't seem to work though since the static server only supports routing for '/'.
//html.WriteTo(w)
}