如何在同构或SSR应用程序中使用MongoDB Stitch Auth?

2024-04-04

想要在 NextJS 应用程序中使用 Stitch(基本上是同构反应)。通常,您可以在初始请求的标头中传递 JWT 或会话令牌,如果用户已有会话,您可以立即加载其所有数据并在服务器上合并应用程序。

使用 Google Firebase Auth,您甚至可以通过在请求中传递令牌并使用该令牌在服务器端收集用户来完成此操作。

不过,我不确定这对 Stitch 来说如何。文档称 Stitch 创建了一个存储在本地存储中的令牌。无论如何,是否可以将其传递给服务器以用于对服务器上的用户进行身份验证?

此外,stitch 的 SDK 并不是同构的。有一个服务器和一个浏览器 SDK。只能在浏览器中处理用户会话吗?这似乎使其难以用于服务器渲染的应用程序。我错过了什么吗?


您可以在 app.user.activeUserAuthInfo.accessToken 中访问令牌(自动刷新)

在服务器端,您将解码令牌并得到类似的东西。

{
  "exp": 1590658522,
  "iat": 1590656722,
  "iss": "5ecf66e9d230045ab06a867b",
  "stitch_devId": "eqwewqewqeq",
  "stitch_domainId": "dewdewwqwewq",
  "sub": "5ecf524c65adwdwedw4ac1185510cff", <---- this is your user ID 
  "typ": "access"
}

您可以找到“sub”,它是您的 ObjectId(_id),您可以使用它从 mongodb 获取数据。


Stitch 是无服务器的。这意味着您可以完全摆脱服务器。您可以创建-react-app,使用 Stitch 函数构建您的应用程序 -> 构建 -> 上传所有静态文件,然后让所有内容保持运行。无需任何服务器,无需担心服务器扩展。

如果您想要 SSR,并且仍然想在自己的托管服务器上处理它,请不要使用 Stitch。

如果您打算在无服务器的情况下使用 nextjs,最好使用 lamda@edge,然后使用 serverless-nextjs 组件构建文件。然后你就可以摆脱所有缝合并使用 Cognito 或 firebase。

https://www.serverless.com/blog/serverless-nextjs/ https://www.serverless.com/blog/serverless-nextjs/

不过 Lambda@edge 没有免费套餐。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在同构或SSR应用程序中使用MongoDB Stitch Auth? 的相关文章

  • Mongodb 限制聚合查询中的数组

    我正在尝试编写一个查询来返回每个类别中的前 X 个术语 例如前 5 个 前 10 个等 每个术语都有一个关联的类别 并且基于另一个术语的帮助堆栈溢出问题 https stackoverflow com questions 25666187
  • Mongodb 聚合嵌套组以及最近更新的文档

    我已经在我的集合中指定了人员 状态 如下所示 ASSIGN ID 583f84bce58725f76b322398 SPEC ID 58411771 STATUS 1 UPDATE DATE ISODate 2016 12 21T04 10
  • 如何从数组中删除重复的条目?

    在下面的示例中 Algorithms in C 出现两次 The unset修饰符可以删除特定字段 但如何从字段中删除条目 id ObjectId 4f6cd3c47156522f4f45b26f favorites books Algor
  • 如何在hostinger中部署nextjs项目

    有谁知道如何在托管共享主机中部署 nextjs 项目 我被困在这里 托管提供商有 hpanel 而不是 cpanel 并且您没有任何安装 nodejs 的选项 我很失望 我才订阅一年 现在我不知道该怎么办 我试图将构建的文件夹 next在
  • Mongodb - 为现有集合添加架构

    我的 MongoDB 中有一个包含 1300 万条记录的集合 不幸的是 当我创建这个集合时 没有为其创建模式 我想知道除了备份整个数据库 创建架构并上传所有数据之外 是否有任何方法可以添加 JSON 架构 您可以使用以下方法将 JSON 架
  • 使用 Tweepy 获取推文时出错

    我有一个用于获取推文的 Python 脚本 在脚本中我使用该库 Tweepy 我使用有效的身份验证参数 运行此脚本后 一些推文存储在我的 MongoDB 中 有些则被 if 语句拒绝 但我仍然收到错误 requests packages u
  • Pymongo 批量插入

    我正在尝试批量插入文档 但批量插入时不会插入超过 84 个文档 给我这个错误 in insert pymongo errors InvalidOperation cannot do an empty bulk insert 是否可以批量插入
  • 在 MongoDB 聚合的“addField”操作中使用“$count”

    我正在尝试找到聚合运算符的正确组合 以将标题为 totalCount 的字段添加到我的 mongoDB 视图中 这将为我提供聚合管道特定阶段的计数 并将其输出为每个文档的计数结果 count count 但最终我得到了一个具有此结果的文档
  • 如何在 next-auth 中将数据添加到客户端 API?

    我目前正在使用凭据提供程序使用 next auth 进行授权 我有会话正在运行并且用户可以登录等 但是 在会话中我需要使用客户端 API 用户 名字 姓氏传递一些数据 用户名和电子邮件 默认情况下 客户端 API 传递名称 电子邮件和图像
  • spring-data-mongodb 在重新水化对象时到底如何处理构造函数?

    我读过了http static springsource org spring data data mongo docs 1 1 0 RELEASE reference html mapping chapter http static sp
  • MongoDB 过滤嵌套对象中的数组元素

    我有一个文件如下 id ObjectId 56423b2558cb340599108b35 test source member abc member xyz 我想过滤数组元素 xyz 并且我正在尝试以下查询 db coll find te
  • NestJs/Mongoose 中的自动递增序列

    我正在将 NodeJs 项目迁移到 NestJs 该项目使用 MongoDB 作为后端数据库 使用 Mongoose 作为 ODM 我当时用的是猫鼬序列 https github com ramiel mongoose sequence插件
  • 通过在 body、mongoose/mongodb 中提供文档来更新多个文档

    我需要通过在正文中提供一些文档来更新它们 我无法查询它们 必须提供它们 Example var persons id 1 name Joe active false id 2 name Jane active false 该数据在正文中提供
  • 如何停止在 mongodb 集合中插入重复文档

    让我们有一个MongoDB包含三个文档的集合 db collection find id user A title Physics Bank Bank A id user A title Chemistry Bank Bank B id u
  • Ubuntu 上的 MongoDB 不会作为服务启动,日志中没有任何内容

    我正在 Ubuntu 上运行 MongoDB 2 2 如果我运行 sudo mongod 我得到一个错误 它找不到 data db 这不是数据库所在的位置 在 mongod conf 中 数据库路径被指定为 Ubuntu 10gen 默认值
  • 自动执行异步函数

    下面的代码可以完美运行 const Course mongoose model Course courseSchema async function foo const nodeCourse new Course name Node JS
  • 将 mongodb 与 solr 集成的动机是什么 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Mongodb 是一个 nosql 数据库 除了全文搜索之外 任何查询都可以在其上运行 因为它会降低整体性能 Solr 是一个搜索引擎 当我们将
  • 使用 Java 为 MongoDB 中的外部值分配权重

    这就是我如何创建具有不同权重的索引蒙戈外壳 db blog ensureIndex content text keywords text about text weights content 10 keywords 5
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • 如何在 Swiper 实例之外使用 useSwiper?

    我在用着用于 React 的滑动器 https swiperjs com react显示一些幻灯片 我一直坚持使用外部按钮在幻灯片 上一张和下一张 之间导航 刷卡器有一个useSwiper hook https swiperjs com r

随机推荐