Parse Server 电子邮件中的链接已损坏(验证帐户、重置密码...)

     2023-03-16     232

关键词:

【中文标题】Parse Server 电子邮件中的链接已损坏(验证帐户、重置密码...)【英文标题】:Links in Parse Server emails are broken (validate account, reset password...) 【发布时间】:2021-11-24 09:11:12 【问题描述】:

我尝试在本地服务器 (Ubuntu 20.04) 上安装 Parse 服务器。

所有功能都可以正常工作...除了一个:电子邮件系统(例如用于重置密码或验证电子邮件地址)。我安装了一个适配器并发送了电子邮件,但它们包含的链接已损坏:当我单击它时,我被重定向到“无效链接”页面。经过几个小时的调查,我不明白发生了什么。

这是我的配置文件:

首先,我使用 Nginx 作为代理,这是我的域名配置文件中涉及我的 Parse 服务器的部分:


     location ~ ^/parse/(.*)$ 
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-NginX-Proxy true;
                proxy_pass http://127.0.0.1:1337/parse/$1;
                proxy_ssl_session_reuse off;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header Host $host;
            
         location /parsedashboard 
                include proxy_params;
                proxy_pass http://0.0.0.0:4040;
            
        
            location /login 
                include proxy_params;
                proxy_pass http://0.0.0.0:4040/login;
            
        
            location /bundles 
                include proxy_params;
                proxy_pass http://0.0.0.0:4040/bundles;
            
        
            location ~ ^/apps(.*)$ 
                include proxy_params;
                proxy_pass http://0.0.0.0:4040/apps$1;
            

这是我的 Parse config.js 文件:


    
      "appName": "App name - Parse Server",
      "logsFolder": "/var/www/my/app/logs/",
      "databaseURI": "mongodb://localhost:27017/parsedb",
      "appId": "my_app_id",
      "masterKey": "my_master_key",
      "serverURL": "http://localhost:1337/parse",
      "publicServerURL": "https://my_domain.ovh/parse",
      "port": 1337,
      "cloud": "/var/www/my/app/cloud/main.js",
      "push": 
          "android": 
                "apiKey": "my_api_key"
          
      ,
      "liveQuery": 
        "classNames":["Class_1", "Class_2", "Class_3"]
      ,
      "verifyUserEmails": true,
      "emailAdapter": 
        "module": "parse-server-mailgun-adapter-template",
        "options": 
          "fromAddress": "My app ",
          "domain": "my_domain.mailgun.org",
          "apiKey": "my-api-key"
        
      
     

电子邮件中包含的链接看起来不错,例如:

https://my_domain.ovh/parse/apps/APP_ID/request_password_reset?token=TOKEN&username=juju

但正如我所说,它重定向到“无效链接”页面。

我试图通过在 parse-server/lib/Routers/PublicAPIRouter.js 中的 requestResetPassword(req) 方法中添加一些日志来了解为什么会发生这种重定向,我看到从查询中获得的用户名和令牌是空的:



     const 
          username,
          token: rawToken
         = req.query;
        const token = rawToken && typeof rawToken !== 'string' ? rawToken.toString() : rawToken;
    
        if (!username || !token) 
                _logger.default.info("  - usn : " + (!username) + ", token : " + (!token));
          return this.invalidLink(req);
        

我有日志:“-usn : true, token : true”

我不是 NodeJS 方面的专家(委婉说法 ^^),所以我真的不知道如何继续我的调查。

您知道这个问题的原因吗? (有关信息,我的 Parse 服务器的所有其他功能都可以正常工作:数据库访问、云代码、实时查询、仪表板......)

提前谢谢你:)

朱利安

【问题讨论】:

【参考方案1】:

感谢 Parse 社区论坛的 davimacedo,我找到了解决方案 :)

问题是nginx反向代理配置错误:请求参数没有转发到Parse服务器。

详细信息可以在这个线程中找到: How can query string parameters be forwarded through a proxy_pass with nginx?

对于我的配置,这意味着只需在“proxy_pass”行的末尾添加 $is_args$args。完整的行是:

proxy_pass http://127.0.0.1:1337/parse/$1$is_args$args;

在此之后,一切都按预期工作 \o/

【讨论】:

SQL Server CE 复制失败:内部错误:传输消息中的 HTTP 标头信息已损坏或丢失

】SQLServerCE复制失败:内部错误:传输消息中的HTTP标头信息已损坏或丢失【英文标题】:SQLServerCEreplicationfailure:Internalerror:HTTPheaderinformationiseithercorruptedormissinginthetransportmessage【发布时间】:2012-03-0302:33:32【问题描述】:我在Windo... 查看详情

访问链接表连接属性已损坏 - 如何修复(或删除)?

...中,有代码创建一个链接表(在“A”中)到数据库“B”中的表,使用链接表中的数据在数据库“A”中执行一些操作,然后删除链接表。 查看详情

在 Parse 服务器 CloudCode 中使用已初始化的邮件适配器

...件适配器【英文标题】:UsingalreadyinitialisedmailadapterinParseserverCloudCode【发布时间】:2016-04-0723:03:21【问题描述】:使用parse-server2.2.6,如何在云代码中使用SimpleMailgunAdapter?我像这样初始化我的解析服务器:varapi=newParseServer(databa 查看详情

使用 Parse Server 设置密码重置时出错

...到index.js。添加此代码后,当应用程序启动或我尝试发送电子邮件时,我收到此错误:JSO 查看详情

安装 Parse Server 通用电子邮件适配器

】安装ParseServer通用电子邮件适配器【英文标题】:InstallingParseServerGenericEmailAdapter【发布时间】:2020-04-2010:26:59【问题描述】:我将parse-server与AWS弹性beanstalk一起使用。默认安装了mailgun电子邮件适配器,但我想安装通用电子邮... 查看详情

通过 URL 引用存储在 Parse 中的 ParseFiles

...在开发iOS和Android,该应用程序会发送一封包含2张图片的电子邮件。它不会将图像附加到电子邮件中,而是使用电子邮件HTML内容中img标记的src属性通过URL链接到它们。我想知道是否可以使用Parse存储这些图像并在电 查看详情

在 Laravel 中的令牌旁边添加电子邮件忘记密码模板电子邮件链接(已解决)

】在Laravel中的令牌旁边添加电子邮件忘记密码模板电子邮件链接(已解决)【英文标题】:AddemailnexttotokeninLaravelforgotpasswordtemplateemaillink(SOLVED)【发布时间】:2021-10-0915:12:06【问题描述】:我正在使用带有身份验证系统的Laravel8.5... 查看详情

Atmel 电子邮件验证 URL 已损坏

】Atmel电子邮件验证URL已损坏【英文标题】:AtmelEmailVerificationURLisbroken【发布时间】:2017-08-1020:49:10【问题描述】:是否有人在电子邮件历史记录中有用于电子邮件地址验证的AtmelURL基本路径?他们向我发送了一个损坏的URL,只... 查看详情

使用 Swift Parse Server 和 AWS SES 请求重置电子邮件的密码

】使用SwiftParseServer和AWSSES请求重置电子邮件的密码【英文标题】:RequestPasswordResetforEmailusingSwiftParseServerandAWSSES【发布时间】:2018-12-1205:59:43【问题描述】:我让AWSSES使用Parse服务器使用$npminstallparse-server-amazon-ses-email-adapter--save... 查看详情

Mailchimp 模板“发送到 Mandrill 选项”对于实际电子邮件已损坏

】Mailchimp模板“发送到Mandrill选项”对于实际电子邮件已损坏【英文标题】:MailchimpTemplate"SendtoMandrilloption"isbrokenforactualemail【发布时间】:2016-12-2406:14:18【问题描述】:我尝试关注这篇文章:https://thoughtbot.com/blog/how-to-sen... 查看详情

Parse Server - 如何翻译邮件确认页面和密码重置页面

...题描述】:我有一个带有解析服务器的项目,我需要翻译电子邮件确认和密码重置的页面,但我找不到任何解决方案。我找到了电子邮件模板,但没有找到用户点击ParseServer发送到电 查看详情

Bitnami Parse Server Dashboard 添加邮件适配器

...无问题地访问数据库。但是,我无法向新注册的用户发送电子邮件验证。经过一番研究,我知道我必须添加邮件适配器并为解析服务器启用一些参数,但我不知道如何从仪 查看详情

Apache Ignite - 谷歌图片下载链接已损坏

】ApacheIgnite-谷歌图片下载链接已损坏【英文标题】:ApacheIgnite-googleImagedownloadlinkisbroken【发布时间】:2019-09-0622:39:06【问题描述】:我正在尝试从以下链接下载ApacheIgniteGoogleImage的图像,但它似乎已损坏。是否有任何其他来源可... 查看详情

Bitnami EC2 Parse Server Instance,更改默认电子邮件文件

】BitnamiEC2ParseServerInstance,更改默认电子邮件文件【英文标题】:BitnamiEC2ParseServerInstance,changethedefaultemailfiles【发布时间】:2020-04-1810:03:22【问题描述】:我已经成功地在我的BitnamiEC2ParseServer上使用mailgun适配器设置了重置电子邮... 查看详情

Nodemon监视选项已损坏

...题描述】:我正在使用gulp-nodemonconfig目录只包含一个文件server.js。$.nodemon(script:\'config/server.js\',watch:[\'config/**/*.js\']).on(\'restart\',function()setTimeou 查看详情

重命名和转移网站成功,但旧的社交媒体链接已损坏

】重命名和转移网站成功,但旧的社交媒体链接已损坏【英文标题】:RenamedandTransferredsitesuccessfulbutoldSocialMedialinksarebroken【发布时间】:2018-12-0615:58:57【问题描述】:我刚刚将我的网站从一个域名转移到另一个域名。社交媒体和... 查看详情

通过 Django 发送邮件时 Gmail 的图片链接损坏

...021-04-2900:25:22【问题描述】:我在Django中使用SMTP协议发送电子邮件。当我发送图片链接时是这样的:https://example.com/images/pic1.jpg但Gmail会将其转换为以下内容:https://ci5. 查看详情

Kubernetes 仪表板部署 YAML 文件链接已损坏

】Kubernetes仪表板部署YAML文件链接已损坏【英文标题】:KubernetesdashboarddeploymentYAMLfilelinkisbroken【发布时间】:2020-04-0819:25:39【问题描述】:GitHub中给出了以下两个URl,并且都给出了404错误。https://raw.githubusercontent.com/kubernetes/dashbo... 查看详情