在默认的密码身份验证的每个身份验证设置中,登录和注册页面是不同的。我尝试合并相应的jade文件,并将get/post寄存器和服务器文件中的登录路径安排为相同的路径。然后我加载了合并后的页面,得到了以下错误:
500输入: /Users/eterna/Downloads/fame/views/index.jade:8 6| label(for=everyauth.password.loginFormFieldName)登录7|输入(type=‘text’,value=userParamseveryauth.password.loginFormFieldName),label(for=everyauth.password.emailFormFieldName) > 8| #ReferenceError 9| label(for=everyauth.password.emailFormFieldName)ReferenceError 10| input(type='text',name=everyauth.password.loginFormFieldName =‘Email’,value= userParams 'email') 11| #password userParams未定义。
我显然走错了路。有没有一个简单的解决方案可以把登录和注册放在同一个页面上?
发布于 2012-06-28 13:58:54
考虑阅读默认设置的代码。不查看您的代码(因为您没有发布它),我可以从错误中看出它跳过了第7行,因为您正在尝试访问userParams,它不存在于登录,但它确实存在于注册。看起来userParams只是保存用户在字段中输入的内容,因此当出现注册错误时,用户已经输入的文本将被放入表单中。(例如,如果他们输入他们的电子邮件地址,但他们的密码太短,注册错误,并将仍然有他们的电子邮件地址在输入字段中)
结合注册和登录的最简单方法是客户端。你可以1)在页面上有两个提交按钮--注册和登录。根据用户单击的内容,表单将发布到不同的入口点。
2)创建注册和登录选项卡,这样当您单击注册时,您将显示注册表单,当您单击登录选项卡时,它将切换到其他表单
您可以通过覆盖respondToLoginFail来使每个身份验证执行此逻辑,因此当它尝试登录人员但失败时,它将重新构建请求并对注册路径进行post调用。我不建议你这么做,但还是有可能做到的。
https://stackoverflow.com/questions/7830693
复制相似问题