首页 > 解决方案 > 环回应用程序无法验证链路

问题描述

我正在学习 git hub 的教程。这是教程链接https://github.com/strongloop/loopback-example-user-management。我想通过向用户发送链接来验证用户电子邮件地址。我可以向用户电子邮件地址发送电子邮件,但问题是当我单击链接时,它无法验证链接,当我单击时出现以下错误..

This site can't be reached The web page at http://0.0.0.0:3000/api/users/confirm?uid=1&redirect=%2Fverified&token=450fac89ef248b754d01e373f29bbcb9741a91873003e58daf2e31c2f9ddbb9b3013f404fceecc436b7973ca549930bc826d0581949ce88baa0b6c061ad90493 might be temporarily down or it may have moved permanently to a new web address . ERR_ADDRESS_INVALID

这里是 route.js 代码。

// Copyright IBM Corp. 2014,2017. All Rights Reserved.
// Node module: loopback-example-user-management
// This file is licensed under the MIT License.
// License text available at https://opensource.org/licenses/MIT

var dsConfig = require('../datasources.json');
var path = require('path');

module.exports = function(app) {
  var User = app.models.user;

  //login page
  app.get('/', function(req, res) {
    var credentials = dsConfig.emailDs.transports[0].auth;
    res.render('login', {
      email: credentials.user,
      password: credentials.pass
    });
  });

  //verified
  app.get('/verified', function(req, res) {
    res.render('verified');
  });

  //log a user in
  app.post('/login', function(req, res) {
    User.login({
      email: req.body.email,
      password: req.body.password
    }, 'user', function(err, token) {
      if (err) {
        if(err.details && err.code === 'LOGIN_FAILED_EMAIL_NOT_VERIFIED'){
          res.render('reponseToTriggerEmail', {
            title: 'Login failed',
            content: err,
            redirectToEmail: '/api/users/'+ err.details.userId + '/verify',
            redirectTo: '/',
            redirectToLinkText: 'Click here',
            userId: err.details.userId
          });
        } else {
          res.render('response', {
            title: 'Login failed. Wrong username or password',
            content: err,
            redirectTo: '/',
            redirectToLinkText: 'Please login again',
          });
        }
        return;
      }
      res.render('home', {
        email: req.body.email,
        accessToken: token.id,
        redirectUrl: '/api/users/change-password?access_token=' + token.id
      });
    });
  });

  //log a user out
  app.get('/logout', function(req, res, next) {
    if (!req.accessToken) return res.sendStatus(401);
    User.logout(req.accessToken.id, function(err) {
      if (err) return next(err);
      res.redirect('/');
    });
  });

  //send an email with instructions to reset an existing user's password
  app.post('/request-password-reset', function(req, res, next) {
    User.resetPassword({
      email: req.body.email
    }, function(err) {
      if (err) return res.status(401).send(err);

      res.render('response', {
        title: 'Password reset requested',
        content: 'Check your email for further instructions',
        redirectTo: '/',
        redirectToLinkText: 'Log in'
      });
    });
  });

  //show password reset form
  app.get('/reset-password', function(req, res, next) {
    if (!req.accessToken) return res.sendStatus(401);
    res.render('password-reset', {
      redirectUrl: '/api/users/reset-password?access_token='+
        req.accessToken.id
    });
  });
};

标签: routesloopback

解决方案


查看以http://0.0.0.0:3000/开头的地址, 这是您的本地计算机地址或本地主机。如果您尝试使用本地主机(运行环回服务器的同一台机器)浏览该链接,那么您将能够验证。否则,它将不起作用,因为该地址不属于任何公共 IP。您设备的本地 IP。


推荐阅读