使用Nodejs+Express和Firebase auth存储用户会话的常用方法是什么?我有Android和Ios应用程序,我想在上面使用相同的逻辑(稍后在web上也是如此),所以我会得到JWT令牌。我想使用该令牌作为请求的授权。此外,我希望保持用户会话,而不要求他们再次登录。我不知道该怎么做,我找到的所有Express会话资源都是关于web和cookies的主题。我遇到了可能将会话存储在MongoDb中的upon MongoConnection a library for Express,但是会话如何处理非web请求?谁能帮我澄清这一点,我知道我在这里遗漏了一点,因为肯定有一个简单的方法来验证传入的请求,也有一个用户不必每次都登录的会话。
最好,我希望有一种简单的方法来拥有需要JWT令牌访问的端点。除此之外,还有一个类似的会话。在Nodejs的Firebase Admin SDK中有一个验证令牌的功能,但在每次请求时都要手动检查令牌,这似乎真的很奇怪。
发布于 2021-08-09 16:36:44
我将后端和前端的会话完全分开处理,就像我主要制作RESTful apis一样。在前端,您可以随心所欲地处理会话,例如,您可以在用户使用firebase auth进行身份验证时启动会话,并根据firebase auth用户的属性设置用户角色。使用cookies,做任何你喜欢的事情。
然后在后端,在每个端点上只需解码令牌,验证它,检查用户是否有权访问他们正在请求的资源等。编写自己的中间件是很常见的,这样您就不必重复解码代码。有关此方法的更多信息,this可能会有所帮助。在每个请求上手动检查令牌并不奇怪,这是保证请求真实性的常见做法。希望这能对你有所帮助。
总而言之,将前端会话与后端完全分开。在后端的express服务器上,在任何受保护的端点上,解码并验证令牌,以确定用户是否有权访问资源。
使用firebase的后端会话不是一个好主意(因为它是无服务器的),最好是创建一个无状态的restful api。
https://stackoverflow.com/questions/68715033
复制相似问题