useAuthState() 是不是每次都使用 cookie 或请求?它在内部如何运作?
Posted
技术标签:
【中文标题】useAuthState() 是不是每次都使用 cookie 或请求?它在内部如何运作?【英文标题】:does useAuthState() use cookies or request everytime?? How is it working internally?useAuthState() 是否每次都使用 cookie 或请求?它在内部如何运作? 【发布时间】:2021-11-08 00:58:20 【问题描述】:我使用 useAuthState() 钩子 进行来自 'react-firebase-hooks/auth' 的身份验证。我很想知道它是如何工作的。它是存储 cookies 并在注销后将其清除,还是每次都请求 firebase?如果是这种情况,它如何获取特定人登录的引用,我的意思是它在请求中传递了什么参数(如 uid、电子邮件)以及它是如何获取它的。
https://i.stack.imgur.com/XiCQp.jpg
这张图片是它使用 uid 请求的网络部分,但它存储在哪里??
【问题讨论】:
Firebase 身份验证使用 indexedDb。 ***.com/questions/52597085/… 帮了大忙,谢谢 【参考方案1】:'react-firebase-hooks' 中的 useAuthState() 钩子是 firebase 的 onAuthStateChanged()
函数的包装器,您可以在此处看到:https://github.com/CSFrequency/react-firebase-hooks/blob/master/auth/useAuthState.ts
onAuthStateChanged() (除其他外)在 Auth 对象上设置一个观察者(回调)。 Auth 对象本身将调用 home 到 firebase 以使用存储在浏览器中的访问令牌(如果可用)验证登录用户。在此处阅读更多信息:https://firebase.google.com/docs/auth/web/manage-users
Firebase 不会将此令牌存储在 cookie 中,但在 indexedDB 中,您可以在此处查看:
阅读有关 IndexedDB 的更多信息:https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API
您可以转到应用程序 > 存储 > 清除站点数据(取决于您的开发工具)。这将清除站点的 indexedDB 并注销用户。
【讨论】:
非常感谢你真的帮助我理解它!以上是关于useAuthState() 是不是每次都使用 cookie 或请求?它在内部如何运作?的主要内容,如果未能解决你的问题,请参考以下文章
使用 restkit 是不是每次发生变化时都必须重新映射所有内容?
<IfModule mod_rewrite.c> 中的 RewriteEngine 每次都打开?