我如何将 launchmyapp 与 Meteor 一起用于验证电子邮件 link?

How can I use launchmyapp with Meteor for the verify-email link?

我在我的 meteor 应用程序上使用 Meteoric 包 运行 ionic。我想在我的应用程序中使用 https://github.com/EddyVerbruggen/Custom-URL-scheme(nl.x-services.plugins.launchmyapp 插件)。其实我也在用,但是效果不佳

我正在尝试使用此插件从 URL 深入 link 我的应用程序。现在我只是想让它与验证电子邮件一起工作 link。我单击 link,它会将我带到应用程序,但它总是要我先登录。

正在发送的 link 看起来像这样。

myappname://verify-email/longtokenidhere1212332

如果我单击此按钮,我的应用程序会启动,但它总是要求用户提供登录凭据,而不是验证电子邮件地址。

更新 1:

我几乎可以正常工作了。我将 handleOpenURL 添加为全局函数,如下所示

Meteor.startup(function() {
    handleOpenURL = function handleOpenURL(url) {
        var token = url.replace("myappname://verify-email/", "");
        console.log("Token: " + token);
        Router.go('/verify-email/', {"paramToken": token});
    }
});

现在我确实看到令牌打印到控制台。

但是当它路由时,我得到一个路由未找到页面。我如何从控制台打印当前 URL 以查看我是否到达正确的完整 URL 路径?我尝试了 window.URL,但打印了 URLConstructor() 对象。

"/verify-email" 不是铁路由;它被烘烤到流星本身。

因此,您可以从客户端调用 Accounts.verifyEmail,而不是 Router.go(),如下所示:

Meteor.startup(function() {
    handleOpenURL = function handleOpenURL(url) {
        var token = url.replace("myappname://verify-email/", "");
        console.log("Token: " + token);
        // mark this client's email as verified by using the token
        Accounts.verifyEmail(token, 
            function(error){
               if (error) {
                   console.log("email not verified");
               } else {
                   console.log("email verified successfully!");
               }
            }
        );
    }
});