Meteor - 自动发起客户端登录

2024-04-17

我有一个 Meteor 应用程序,我使用 nginx 和内部 SSO 服务进行身份验证。我能够成功地完成此操作,并在服务器 Meteor.onConnection 方法上的 nginx 设置 http 标头中检索用户详细信息。

此时,我不确定访问客户端的用户详细信息的最佳方法是什么。我觉得我应该使用内置的 Meteor 帐户,但我不确定如何从客户端启动登录过程,因为用户实际上不会通过 Meteor 客户端登录,而是通过 nginx 进行重定向。我觉得我需要一种方法来自动启动流星端的登录过程,以适当地设置流星.users 集合,但我无法找到一种方法来做到这一点。


查看答案here https://stackoverflow.com/questions/34085553/login-user-account-on-server-side。您可以通过 nginx 将 userId (或任何您想要传递用户的内容)传递到服务器,然后传递到客户端进行登录。您可以生成令牌并将其插入到 Webapp.connectHandler 中。

import { Inject } from 'meteor/meteorhacks:inject-initial';
// server/main.js
Meteor.startup(() => {
    WebApp.connectHandlers.use("/login",function(req, res, next) {
      Fiber(function() {
        var userId = req.headers["user-id"]
        if (userId){
           var stampedLoginToken = Accounts._generateStampedLoginToken();
           //check if user exists
           Accounts._insertLoginToken(userId, stampedLoginToken);
           Inject.obj('auth', {
             'loginToken':stampedLoginToken
           },res);             
           return next() 
        }
      }).run()
    })       
}

现在您可以在客户端的帮助下登录流星注入初始包 https://github.com/meteorhacks/meteor-inject-initial

import { Inject } from 'meteor/meteorhacks:inject-initial';
// iron router
Router.route('/login', {
    action: function() {
        if (!Meteor.userId()){
            Meteor.loginWithToken(Inject.getObj('auth').loginToken.token, 
                function(err,res){
                    if (err){
                        console.log(err)
                    }
                }
            )
        } else {
            Router.go('/home')
        }
    },
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Meteor - 自动发起客户端登录 的相关文章

  • uWSGI重启时停机

    每次当我有代码更新时重新启动服务器时 我都会遇到 uwsgi 问题 当我使用 sudo restart account 重新启动 uwsgi 时 停止和启动实例之间存在一个小间隙 导致停机并停止所有当前请求 当我尝试 sudo reload
  • 如何将亚马逊颁发的免费证书配置到nginx.config

    我已经安装了nginx服务器在Amazon Linux 2环境 在创建弹性负载均衡器期间 我创建了 Amazon 的免费证书 现在 我想通过以下方式访问我的服务器https port 443 我该如何配置这个SSL证书在nginx conf
  • Nginx 正在向 uWSGI 发出非常旧的请求?

    我看到一种奇怪的情况 Nginx 或 uwsgi 似乎正在建立一个很长的传入请求队列 并在客户端连接超时后很长时间内尝试处理它们 我想理解并停止这种行为 以下是更多信息 My Setup 我的服务器使用 Nginx 通过 Unix 文件套接
  • Node + Express + Nginx 未设置 Cookie

    我有一个使用 Express 的 Node 应用程序 我尝试为我的客户端设置 cookie 它在本地环境 http 上运行良好 但是一旦我投入生产 https 我就很好地收到了cookie 我可以在响应中看到它 但它没有设置 任何想法 Ng
  • 如果我在不打算升级到 websocket 连接的 HTTP 请求中包含“Upgrade”和“Connection”标头,会发生什么情况?

    我有一个 Nginx 服务器块 用于代理对 node js 服务器的请求 该服务器同时提供 HTTP 内容和 WS websocket 内容 是否可以在不应升级到 Websocket 连接的请求上添加升级标头 即使用 Nginx 代理到服务
  • 如何更新我的流星项目中的 cordova-plugin-device ?

    当我运行流星项目时 我收到此警告 警告 尝试安装插件 电子邮件受保护 cdn cgi l email protection 但 它的最低版本应为 1 1 1 以确保与 当前平台版本 安装最小 版本以方便起见 但您应该调整您的依赖项 然后 我
  • NGinx 域名重定向

    假设我有一个名为 xyz co 的网站 我还有其他具有相同前缀的域名 例如 xyz com xyz it xyz co it 现在 nginx 与端口 80 的 nginx conf 中的 server name xyz co 配合得很好
  • Nginx反向代理返回404

    我的 Nginx 安装并运行 下面是配置 etc nginx nginx conf 我要全部转发 api 到我的 tomcat 服务器 该服务器在同一服务器上的端口 9100 上运行 类型http myhost 9100 api apps有
  • 带有移动前端UI框架的流星[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有人将meteor与移动前端框架集成吗 为了使移动 html5 应用程序看起来 更原生 有许多 CSS 前端框架 例如 流星http
  • 更新 Meteor 中的嵌套数组

    这是我的架构 id FJwSEMdDriddXLKXh name t number 5 owners id 1 name Name address Address type Type gender Gender notes 单击后 我将在所
  • 如何在 Meteor 中读取依赖于另一个集合的集合

    我正在尝试从集合中加载最新的帖子 同时加载同一篇帖子的所有评论 该集合具有引用 而不是将整个文档存储在彼此内部 Post title body etc Comment postId body etc 我使用iron router作为路由包
  • Meteor js:使Session对象部分持久化

    在我的流星应用程序中 我使用会话来存储有关用户活动的临时信息 我想使用 amplify js 将此信息的某些部分保留到浏览器 但不是全部 我想要一种拥有 临时 会话密钥和 持久 会话密钥的方法 例如我可以打电话 Session set pe
  • 将代码从 htaccess 重写为 nginx 配置?

    我在将 htaccess 文件中的重写代码实现到 nginx 配置中时遇到问题 我已经尝试过生成器 http winnginx com htaccess http winginx com htaccess用于生成我的重写 代码 我的ngin
  • nginx 和 uwsgi 非常大的文件上传(>3Gb)

    也许有人知道该怎么做 我正在尝试上传大于 3Gb 的文件 没问题 如果我使用以下配置上传高达 2Gb 的文件 Nginx client max body size 5g client body in file only clean clie
  • 常规请求期间 Django AJAX 请求未通过

    我有一个带有登录网页的 Django 站点 当提交页面上的登录表单时 它会执行登录视图 该视图会在其中运行一个需要很长时间处理 30秒左右 的函数 因此 为了在登录期间向客户端显示进度 一旦提交表单 登录页面上的 JS 函数就会开始向服务器
  • 连接到上游时 Nginx 错误:(13:权限被拒绝)

    我在我的中收到此错误nginx error log file 2014 02 17 03 42 20 crit 5455 0 1 connect to unix tmp uwsgi sock failed 13 Permission den
  • NGINX 上的 SSL 终止

    我已经购买了 SSL 证书 并在验证模数时正确地将其捆绑在一起 即https kb wisc edu middleware 4064 https kb wisc edu middleware 4064 那么哈希值是相同的 我已将证书和密钥移
  • Meteor 发布错误 - 发布函数返回非游标数组

    我有这个出版物 Meteor publish temsInThisCompetition function id var teams return Competitions find id fetch map function doc fo
  • Meteor 用户属性

    我希望能够在 Meteor 身份验证系统中将用户标记为 管理员 并允许该用户执行特殊操作 以及显示一些如果他们不是管理员则不会显示的 gui 元素 我已经尝试在用户对象上设置一个 admin 属性 这在服务器端可以正常工作 对于管理操作的
  • 带有 mrt 的流星 - 铁:路由器:没有这样的包

    我在学meteor 0 8 3并尝试使用一些基本的路由设置铁路由器 https github com EventedMind iron router My smart json包含 packages iron router git http

随机推荐

  • 在 Jersey 中是否可以访问注入的 HttpServletRequest,而不是代理

    注射时HttpServletRequest在 Jersey JAX RS 资源中 注入的值是代理 例如 Path myResource class MyResource Inject HttpServletRequest request 会
  • 使用 WinApi 使用 C++ 实现多显示器屏幕截图,仅显示 2 个显示器

    我有一个使用 WinApi 和 C 在 Windows 平台上截取屏幕截图的功能 它与一台和两台显示器完美配合 但当我在具有 3 个或更多显示器的计算机上运行它时 它只拍摄两个显示器的照片 我认为我的问题是 主 监视器左侧的监视器内容被切断
  • 提高聚簇索引 GUID 主键的性能

    我有一个包含大量行 10K 的表 它的主键是 GUID 主键是聚集的 该表的查询性能相当低 请提供建议以提高效率 GUID 上的聚集索引不是一个好的设计 GUID 的本质在于它是随机的 而聚集索引则通过键对记录进行物理排序 这两件事是完全矛
  • 如何在 vuejs 中使用 bootstrap 4 主题

    有多个 Bootstrap 4 主题可以让网站的样式和布局变得简单 其中一些要求您的资产文件夹以非常特定的方式布局 例如 https htmlstream com public preview stream ui kit docs html
  • 如何排除不想要的后代?

    我遇到的情况是元素包含n可点击的手柄和n可揭示的元素 div class revealer div class hotspot a class handle href A a div class reveal p Content A p d
  • 如何完全删除颠覆性插件

    我已经安装了 Subversive 并想切换到 Subclipse 插件 通过 关于 Eclipse gt 安装详细信息 gt 卸载 并安装 Subclipse 卸载 Subversive 后 首选项 gt 团队 中现在有两个可用的 SVN
  • Servlet异步处理请求

    当我探索 NodeJS 应用程序和 Java 应用程序如何处理请求时 我遇到了 Servlet 对请求的异步处理 根据我在不同地方读到的内容 请求将由 Servlet 容器中的 HTTP 线程接收和处理 如果发生阻塞操作 如 I O 则可以
  • 在 Windows 上安装 gsutil

    我对 python 比较陌生 所以如果这是一个愚蠢的问题 我深表歉意 我在 Windows 上安装 gsutil 时遇到问题 我按照这里的指示进行操作 https developers google com storage docs gsu
  • 使用传单和 R 在地图上计算、解码和绘制路线

    我有原始数据 其中包含地点的纬度和经度样本数据如下 编辑 输出 structure list Lat c 33 9409444 33 9335713 33 9333906 33 9297826 Lon c 18 5001774 18 503
  • 我可以在 VS Code 中扩展现有的着色器或语言吗

    我想要做的是创建一个扩展 HTML 支持的扩展 也就是说 它可以完成 HTML 支持所做的所有事情 甚至更多 其中包括以下内容 语法突出显示 着色器 智能感知 HTML 格式 艾米特片段 这些详细信息列在本页上VS Code 中的 HTML
  • XCode 6.0.1 Enterprise In House Distribution 未创建 ipa/plist

    升级到 XCode 6 0 1 后 In House Enterprise Distribution from Archive 现在会创建 pkg 文件 而不是 ipa plist 文件 这打破了我们的企业分配制度 我还没有找到任何有关此更
  • 递归地添加数字序列

    嘿 我想用一些递归来刷新我的想法 我想添加从 开始 到 结束 含 的所有数字 即如果开始是 1 结束是 5 那么答案就是 1 2 3 4 5 15 到目前为止我已经得到了这个 int calc int start int end if st
  • 如何将 TIMESTAMP 列插入 Redshift

    我在 Redshift 中创建了一个表 create table myTable dateTime TIMESTAMP NOT NULL 但是 当我尝试插入包含以下内容的记录时dateTime的 我收到一个错误stl load errors
  • CSS 三角形和盒子阴影

    我用 CSS 完成了下面的图像 正如您所看到的 三角形有一个间隙 可以将框阴影与工具提示分开 代码如下 Generated by less 2 5 1 margin 0 padding 0 box sizing border box Dem
  • “应用变换时出错。验证指定的变换路径是否有效”的根本原因是什么?

    我有 MSI 安装程序 我正在使用 PowerShell 脚本安装和卸载它 当我卸载它时 我在 Azure 上创建的 Windows 2008 2016 服务器上收到以下错误 应用变换时出错 验证指定的转换路径是否有效 如果我使用非 Azu
  • AppCompatSpinner 与 android.widget.Spinner 对于具有最低 SDK 版本 14 的应用程序

    我正在开发使用最低 SDK 版本 14 Ice cream Sandwich 的应用程序 目标版本是 Android Marshmallow 我是否需要使用 AppCompatSpinner 或者普通的微调器可以在具有所有材质外观和感觉的
  • 使用 Devise 在 Rails 中进行功能测试

    经过 3 年的拖延 今天是我开始测试我的 Rails 应用程序的日子 我的第一步是修复 Rails 3 beta4 应用程序中失败的测试 我最后 3 次失败的测试与 devise gem 及其authenticate user 有关 控制器
  • 使用 Retrofit 2 上传文件时出错

    我正在尝试使用以下命令将文件 图片 上传到服务器Retrofit 2 我正在关注tutorial https futurestud io blog retrofit 2 how to upload files to server乍一看似乎很
  • vim 中的切换功能

    基本上我想做的是 map e call ToggleEssayMode
  • Meteor - 自动发起客户端登录

    我有一个 Meteor 应用程序 我使用 nginx 和内部 SSO 服务进行身份验证 我能够成功地完成此操作 并在服务器 Meteor onConnection 方法上的 nginx 设置 http 标头中检索用户详细信息 此时 我不确定