首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Meteor:如何使用我的应用程序的用户帐户信息登录到Telescope应用程序的分支?

Meteor:如何使用我的应用程序的用户帐户信息登录到Telescope应用程序的分支?
EN

Stack Overflow用户
提问于 2014-09-22 02:46:03
回答 1查看 184关注 0票数 1

我有一个应用程序,用户已经注册。当用户点击我的应用程序中的望远镜按钮时,他们将被转移到另一台服务器上,在该服务器上我正在运行我自己的望远镜应用程序分支。

在进入telescope后,我希望能够自动使用与我的应用程序中相同的帐户信息登录用户。如何做到这一点?我可以调整两个Meteor应用程序的代码,因为我自己运行它们。

EN

回答 1

Stack Overflow用户

发布于 2014-09-22 17:15:06

您需要将Telescope应用程序设置为使用其他应用程序的帐户数据库。

您可以通过更改Accounts.connection来使用其他Meteor应用程序(您的主应用程序)

将这一行添加到您的望远镜应用程序的/server/lib目录中:

代码语言:javascript
复制
var myOtherAppDDP = DDP.connect("http://your-other-app.com");

Accounts.connection = myOtherAppDDP;

这样,meteor应用程序的帐户部分的DDP连接将使用主应用程序数据库。

接下来,您需要将登录令牌传输到另一个应用程序。为此,您需要与用户的当前登录令牌建立一个特殊链接:

代码语言:javascript
复制
Template.registerHelper("telescopeUrl", function() {
    return "https://your-telescope-app.com/?auto-login?token=" + localStorage.getItem("Meteor.loginToken") + "&userid=" + localStorage.getItem("Meteor.userId");
});

然后,您可以创建一个url:

代码语言:javascript
复制
<a href="{{telescopeUrl}}">Telescope App</a>

最后,你需要用望远镜截获这些链接并登录,你可以用iron router创建一条路由。

同样,在/client/lib中创建一个包含以下内容的文件:

somefile.js

代码语言:javascript
复制
Router.map(function() {
    this.route("loggin_in", {
        onBeforeAction: function() {
            var token = this.params("token");
            var userId = this.params("userid");

            localStorage.setItem("Meteor.loginToken", token);
            localStorage.setItem("Meteor.userId", userId);

            Tracker.flush();

            window.location.href="/";

        }
    });
});

somefile.html

代码语言:javascript
复制
<template name="logging_in">
    <h3>Logging you in</h3>
</template>

我从来没有亲自尝试过,但希望它能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25962623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档