2015-02-23 130 views
1

我想通過帳戶密碼包工作,使電子郵件驗證,但我遇到了一個奇怪的問題。流星帳戶verifyEmail

看來電子郵件驗證網址中的#正在引發問題。驗證電子郵件URL通常如下所示:http://localhost:3000/#/verify-email/cnaTqQSCgYAksIsFo5FgmV94NHwrfaM2g5GvdZDUMlN

當我點擊此項時,似乎沒有任何事情發生;它只是重新指向本地主機:#300030##

但是,當我刪除#(http://localhost:3000/verify-email/cnaTqQSCgYAksIsFo5FgmV94NHwrfaM2g5GvdZDUMlN)這似乎很好地工作。

URL(http://localhost:3000/#/verify-email/cnaTqQSCgYAksIsFo5FgmV94NHwrfaM2g5GvdZDUMlN)來自Meteor,所以它不是我創建的。

這裏是我的路線和控制器(使用鐵路由器)

Router.route('/verify-email/:_token', { 
    controller : 'AccountController', 
    action : 'verifyEmail' 
}); 

AccountController = RouteController.extend({ 
    fastRender: true, 
    data: function() {}, 
    onBeforeAction: function() { 
     this.render('Loading'); 
     this.next(); 
    }, 

    verifyEmail: function() { 
     var verificationToken = this.params._token; 
     console.log(verificationToken); 
     Accounts.verifyEmail(verificationToken, function(error) { 
      if (error) { 
       console.log(error); 
      } else { 
       Router.go('/'); 
      } 
     }); 

    } 
}); 

任何幫助表示讚賞。如這裏概述路由器:

... add a server file that overrides the urls with # paths that Meteor creates, so that the Iron-Router can work

(function() { 
    "use strict"; 

    Accounts.urls.resetPassword = function (token) { 
     return Meteor.absoluteUrl('reset-password/' + token); 
    }; 

    Accounts.urls.verifyEmail = function (token) { 
     return Meteor.absoluteUrl('verify-email/' + token); 
    }; 

    Accounts.urls.enrollAccount = function (token) { 
     return Meteor.absoluteUrl('enroll-account/' + token); 
    }; 

})(); 

希望它會引導你在正確的方向

回答

4

衝突可能與鐵連接到帳戶密碼封裝起來。

+0

似乎已經工作了!非常感謝 – teh0wner 2015-02-27 07:39:27