routes - 环回应用程序无法验证链路
问题描述
我正在学习 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
});
});
};
解决方案
查看以http://0.0.0.0:3000/开头的地址, 这是您的本地计算机地址或本地主机。如果您尝试使用本地主机(运行环回服务器的同一台机器)浏览该链接,那么您将能够验证。否则,它将不起作用,因为该地址不属于任何公共 IP。您设备的本地 IP。
推荐阅读
- javascript - 使用 reactjs 获取 API 并显示到图表中
- algorithm - 完整的数据包包装
- python - 如何使用 tkinter 更改我的背景颜色?
- python - 循环读取文件时返回特定行
- typescript - 在 SPFx 项目中使用 React CommandBar 时,如何在单独的文件中构建 items[] 数组,包括设置父组件状态?
- java - 为什么我的 try/catch 会重新打印数组的元素?
- accessibility - iOS 13 Accessibility 语音控制功能
- javascript - 使用 javascript 一次为多个网页重用 html 模板
- javascript - React 没有正确重定向
- vb.net - `在 vb.net 中调用 'Fill' 之前未初始化选择命令属性