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 或请求?它在内部如何运作?的主要内容,如果未能解决你的问题,请参考以下文章

C语言中随机函数每次调用的随机序列是不是一样?

使用 restkit 是不是每次发生变化时都必须重新映射所有内容?

<IfModule mod_rewrite.c> 中的 RewriteEngine 每次都打开?

当第三方使用哨兵向我们的服务器执行任何事件时,是不是可以每次都追踪第三方的详细信息?

只安装一次节点,而不是每次都使用 Maven 构建

每次请求视图时,django 是不是都会编译 views.py?