gpt4 book ai didi

Meteor 帐户电子邮件验证失败有两种方式

转载 作者:行者123 更新时间:2023-12-02 09:41:26 26 4
gpt4 key购买 nike

我的开发盒上连接了电子邮件,并在创建用户后收到验证电子邮件。我可以单击包含的链接,它会将我带到我的主页。

1) 单击链接似乎会进行一些处理,因为它会重定向到/,但不会更改用户帐户上的已验证标志。

2)它似乎忽略了我的 Accounts.config 设置,并且仅在我显式调用时才有效

token = Accounts.sendVerificationEmail(userId)

详细信息:

mrt --version
Meteorite version 0.6.11
Release 0.6.5.1

mrt list --using

standard-app-packages
preserve-inputs
less
coffeescript
iron-router
foundation
http
moment
email
spin
roles
accounts-base
accounts-password
accounts-ui

服务器/lib/account.coffee

Accounts.config
sendVerificationEmail: true
forbidClientAccountCreation: true

服务器方法:

Meteor.startup ->
create_user = (options) ->
console.log('create_user: ' + options.username)
userId = Accounts.createUser options

# should not be necessary, but I get email only when included
token = Accounts.sendVerificationEmail(userId)


Meteor.methods({ create_user: create_user })

上面调用后,mongo 显示:

emails: [ { "address" : "jim@less2do.com" , "verified" : false}]

and

email: { "verificationTokens" : [ { "token" : "N3sLEDMsutTbjxyzX" , "address" : "jim@less2do.com" , "when" : 1.380616343673E12}]}

获取默认电子邮件:

Hello,    
To verify your account email, simply click the link below.
http://localhost:3000/#/verify-email/N3sLEDMsutTbjxyzX
Thanks.

点击上面的链接即可:

http://localhost:3000/

但 mongo 数据库没有变化。

我期待通过处理的帐户密码/#/verify-email/N3sLEDMsutTbjxyzX 拉入某些内容,并更新用户文档。

accounts-base.js 尝试使用

match = window.location.hash.match(/^\#\/verify-email\/(.*)$/);

但是此时位置哈希为空。

我是否遗漏了一些需要手动设置路线的内容?我使用铁路由器会毁掉东西吗?以防万一,

Router.map ->
this.route 'home',
path: '/'

this.route 'inboxes'
this.route 'availability'
this.route 'find-agent'
this.route 'inbox-tour'
this.route 'availability-tour'
this.route 'find-agent-tour'

this.route 'inbox',
path: '/inbox/:_id'
data: () ->

m = Messages.findOne this.params._id
m._markRead()
fixed = _.map m.history.versions, (msg) =>
msg.left = (msg.author is 'offer')
msg.body = msg.body.replace( /[\r\n]+/g, "<br>")
msg
m.history.versions = fixed
Session.set 'messageVersions', fixed
m

waitOn: db.subscriptions.messages
loadingTemplate: 'loading'
notFoundTemplate: 'notFound'

this.route 'register',
this.route 'requested',
this.route 'blog',
this.route 'test',
this.route 'aboutUs'

Router.configure
layout: 'layout'

notFoundTemplate: 'notFound'

loadingTemplate: 'loading'

renderTemplates:
'footer': { to: 'footer' }
'sidebar': { to: 'sidebar' }



### Commented to rule out this routine
before: ->
routeName = @context.route.name
debugger

# no need to check at these URLs
#, etc
return if _.include(["request", "passwordReset","register", "tour"], routeName)
return if _.intersection(routeName.split('-'), ["tour"]).length > 0
return if routeName.indexOf('verify-email') != -''
user = Meteor.user()
unless user
#@render (if Meteor.loggingIn() then @loadingTemplate else "/")
if Meteor.loggingIn()
console.log('still logging in, no user, to ' + @loadingTemplate)
@render @loadingTemplate
console.log('!render ' + @loadingTemplate + ' completed' )
else
console.log('no user, / from router over ' + @loadingTemplate)
@render "home"
@stop()
###

谢谢!

最佳答案

显然,iron 路由器和路径中包含 hashbang 的 URL 存在一个已知问题,就像通过电子邮件生成的那样:

https://github.com/EventedMind/iron-router/issues/3

我建议你尝试实现与用户 samhatoum 所说的相同的解决方案(小心,我认为自从他将代码放在 RootController 中的 extends 方法上后,已经更改为 extend .

关于Meteor 帐户电子邮件验证失败有两种方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19112450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com