一两个月前,我在这个网站上寻求帮助,几位同事提供了他们的时间(@Schoen,@rg305等)
我当时正在使用Windows创建一个完全使用node.js的应用程序,我打算从Facebook登录。
嗯,试了几天后,我还是不明白,所以我决定改用Ubuntu。
我从头开始创建我的应用程序,并使用faceebock登录,这是它的新HTTPS策略不允许的。
该应用程序正在使用Express运行,我看到了几件事情,但我不能执行复杂的操作。
我只想告诉我如何通过HTTPS获取我的url(michaelgram.test)。
我必须告诉你,我对这个话题是新的,这就是为什么我不能在Windows上得到它,我希望现在就得到它。
我已经在这个网站上搜索了其他不成功的问题。在我之前的问题中,他们也向我展示了certbot,但我没有在我工作的地方找到Ubuntu 18.04。
我给你看代码,和上一次一样。
对不起,语法错误,我必须使用翻译器。
谢谢。
Let Express=Required(‘Express’);
让AWS=Required(‘AWS-SDK’);
让MUTER=REQUIRED(‘MUTER’);
设MulterS3=Required(‘Multer-S3’);
让ext=Required(‘文件扩展名’);
让cookieParser=Required(‘cookie-parser’);
让bodyParser=Required(‘Body-Parser’);
让EXPRESSION=REQUIRED(‘Express-Session’);
让Passport=Required(‘Passport’);
让Michaelgram=Required(‘Michaelgram-客户端’);
让auth=Required(‘./auth’)
让CONFIG=REQUIRED(‘./CONFIG’);
Let port=Process.env.PORT||5050;
Let Client=michaelgram.createClient(config.client);
设S3=新的aws.S3({
AccesKeyID:config.aws.accesKey,
SecAccessKey:config.aws.askKey
});
设STORAGE=MulterS3({
S3:S3,
Bucket:‘Michaelgram’,
ACL:‘PUBLIC-READ’,
元数据:函数(请求、文件、CB){
Cb(空,{fieldName:file.fieldname})
},
键:Function(请求,文件,CB){
Cb(空,+Date.now()+‘.+ext(文件.原始名称))
}
});
WET UPLOAD=MULTER({STORAGE:STORAGE}).Single(‘图片’);
让app=EXPRESS();
App.use(bodyParser.json());
App.use(bodyParser.urlencode({Extended:False}));
App.use(cookieParser());
应用程序.使用(EXPRESSION({
密码:config.ret,
重新保存:False,
SaveUnInitialized:False
}))
App.use(passport.初始化为())
App.use(passport.ession())
App.set(‘view Engine’,‘pug’);
App.use(EXPRES.STATIC(‘public’));
Passport.use(auth.localStrategy);
Passport.use(auth.facebookStrategy);
Passport.deserializeUser(auth.deserializeUser);
Passport.SerializeUser(auth.SerializeUser);
App.get(‘/’,Function(req,res){
Res.render(‘index’,{title:‘Michaelgram’});
})
App.get(‘/signup’,Function(req,res){
Res.render(‘index’,{title:‘Michaelgram-Signup’});
})
App.post(‘/signup’,Function(req,res){
Let User=req.body;
Client.saveUser(用户,函数(err,usr){
If(Err)返回res.Status(500).Send(err.Message)
调试器
Res.reDirect(‘/Signin’);
});
});
App.get(‘/Signin’,Function(req,res){
Res.render(‘index’,{title:‘Michaelgram-Signin’});
})
App.post(‘/LOGIN’,passport.authate(‘local’,{
成功重定向:‘/’,
失败重定向:‘/Signin’
}));
App.get(‘/logout’,Function(req,res){
Req.logout()
Res.reDirect(‘/’)
});
App.get(‘/auth/facebook’,passport.vernate(‘facebook’,{cope:‘mail’}));
App.get(‘/auth/facebook/allback’,passport.authate(‘facebook’,{
成功重定向:‘/’,
失败重定向:‘/Signin’
}));
函数保证Auth(Req,res,Next){
If(req.isAuthenticated()){
返回下一个()
}
Res.Status(401).Send({Error:‘Not Authorated’})
}
App.get(‘/horami’,Function(req,res){
If(req.isAuthenticated()){
返回res.json(req.user)
}
Res.json({auth:False})
})
App.get(‘/api/Pictures’,Function(req,res,Next){
Client.listPictures(函数(错误,图片){
If(Err)返回res.end([]);
Res.Send(图片)
})
})
App.post(‘/api/Pictures’,ensureAuth,Function(req,res){
Upload(请求,资源,函数(错误)){
如果(错误){
返回res.status(500).Send(上载文件时出错:${err.Message})
}
Let User=req.user
Let Token=req.user.Token
让用户名=req.user.username
让src=req.file.Location
客户端.savePicture({
SRC:SRC,
用户ID:用户名,
用户:{
用户名:用户名,
头像:用户。头像,
名称:用户.名称
}
},令牌,函数(err,img){
如果(错误){
返回res.Status(500).Send(错误消息)
}
Res.end(上传文件:${req.file.Location});
})
})
})
App.get(‘/api/user/:用户名’,(req,res)=>{
Var用户名=req.params.username;
Client.getUser(用户名,函数(err,user){
IF(ERR)返回res.Status(404).Send({Error:‘找不到用户’})
Res.end(用户)
})
})
App.get(‘/:用户名’,Function(req,res){
Res.render(‘index’,{标题:Michaelgram-${req.params.username}});
})
App.get(‘/:用户名/:ID’,Function(req,res){
Res.render(‘index’,{标题:Michaelgram-${req.params.username}});
})
APP.LISTEN(端口,函数(错误){
如果(Err)返回console.log(‘hubo un error’),则进程退出(1);
Sole.log(‘Michaelgram escuchando en el波多黎各5050’);
}),您好,
米盖利托:
Michaelgram.test
您不能使用非公共TLD从公共CA获取证书...
谢谢你,没有感觉,这是我测试的那个,我也有Tego Michaelgram.com,但它很忙。正如我所说的,我正在学习之后创建一个应用程序,我不能使用michaelgram.test来进行测试…?
我应该怎么做才能让脸书允许我用脸书…登录我的应用程序?
我应该使用什么域名来进行测试?
这是一个研究应用程序,不会发布,或者至少在你更多地了解Java脚本并相信它更大之前是不会发表的。
我不能使用Michaelgram.…来做测试?
在这个糟糕的大互联网上,计算机不会连接到主机名。它们连接到一个IP地址。但在顶级域名“test”下注册域名是不可能的:这是一个“保留”的顶级域名,不能在全球互联网上使用。因此,计算机不可能将您的“.test”域解析为任何IP地址,因此计算机无法连接到您的服务器。如果电脑不能连接到你的服务器,Facebook也不能。
你可以使用一个子域,如test.michaelgram.com进行测试。在课程中进行的测试(一年多前录制的)中,老师用该域名登录了Facebook的应用程序。
然后,我有一个域名WebApplicationDeveloper…但我的主机不允许我放置来自我的SSL证书。
如果我创建自己的子域并将其放入代码中进行测试,并且能够通过Facebook…的登录测试?
这是我的子域:michaelgram.webApplicationDeveloper.es,Miguelito:
在课程中进行的测试中(记录在一年多前),老师用那个域名登录了Facebook的应用程序。
也许Facebook当时没有同样的政策?
米盖利托:
如果我创建自己的子域并将其放入代码中进行测试,并且能够通过Facebook…的登录测试?
这是我的子域:michaelgram.
是的,我认为这很好。我应该遵循什么步骤来实现我的目标,我已经用Medium的例子尝试了,但没有成功。
如果你告诉我要遵循的步骤或学习的文档,作为一个想要学习的初学者,看看我是如何为连接配置Express的,我会帮自己一个忙,这不会再困扰我了。
问题是我的主机不允许我包含SSL证书,我应该如何继续?
我不知道我还能做什么…
在我电脑的主目录中创建文件夹,可能您没有在正确的位置创建它们。您的DNS看起来很奇怪-您确定这是您控制的域吗?此域有一个指向parkingsrv0.dondominio.com的CNAME记录,该域名与您的域名服务器相同。这听起来对吗?这反过来又指向37.152.88.55。
你的第二个域名服务器看起来也有点困惑,因为没有parkingsrv0.dondominio.com的A记录,只是另一个递归CNAME记录。我不太明白他的意思。
当然,这个领域是我的。
我正在尝试在我的主机中创建证书,我被告知可以使用We‘s Encrypt:
Hostinger教程-16年10月20日
如何通过在共享主机上加密来安装免费的SSL
让我们加密提供免费的SSL证书。了解如何在共享主机帐户上加密中安装和续订SSL。
剩下的问题是,我是否可以使用该域来测试我的应用程序。
我希望通过把域名放在我电脑的主机上,它会起作用,我会得到它。
考虑到我的应用程序使用Express…运行,我认为这是一种混淆,因为在一个地方你说的是michaelgram.webapplication ationDeveloper.es,而在另一个地方你说的是michaelgram.developer.es,这两个地方是不同的。如果您的域真的是michaelgram.webApplicationDeveloper.es,您不能使用它来获得machinegram.Developer.es的证书,对不起,这是我的一个错误。
我的子域是michaelgram。WebApplicationDeveloper.es
我会想办法解决的,我已经试了快两个月了。
通过更改Ubuntu,我认为这会更容易。
感谢给予的支持,我会尝试从另一个方面获取。,您目前在使用michaelgram.webApplications ationDeveloper.es?,Miguelito时是否遇到NXDOMAIN错误:
错误:DNS问题:NXDOMAIN在A中查找Michaelgram.Developer.es
我不知道我还能做什么…
是的,它显示以下错误:Error:Dns Problem:NXDOMAIN查找A中的Michaelgram.Developer.es
我不知道我还能做什么。
但现在我要到明天才能做更多的测试。如果你的真实域名是Michaelgram.webDeveloper.es,为什么会显示NXDOMAIN在A中查找Michaelgram.Developer.es?您是不是在什么地方输入了michaelgram.你用这个名字创建了CSR吗?,我不知道为什么,明天我会继续做测试,今天是不可能的。
给了我以下错误,他们一直无法在主机上帮助我。
我也尝试了http://zerossl.com/和我在主机上给出错误的方式
我还能做什么呢…?
感谢您的支持
错误:
-bash-4.2$php bin/acme问题--域michaelgram.webapplication ationDeveloper.es--路径/home/u811029570/public_html--服务器let加密
Kelunik\Acme\AcmeException:验证失败,请检查‘http://michaelgram.webapplicationdeveloper.es/.well-known/acme-challenge/-1cNfAsA9uEWx7U6hIUiPh7sxInwudgUi6KwB0-LoL8’.的响应正文它包含‘
404未找到
404未找到
奥利斯特伊
但‘-1cNfAsA9uEWx7U6hIUiPh7sxInwudgUi6KwB0-LoL8.z8tOI7bvDkjrp945EiWin90bNT-7NoZvRqzrro6i3NE’是意料之中的。在/home/u811029570/acme-client/vendor/kelunik/acme/lib/Verifiers/Http01.php:62,中,您是否可以在此服务器上创建//home/u811029570/public_html/.well-known/acme-challenge/test2.txt/u811029570/PUBLIC_HTMLTest.txt和另一个文件HOME?
您是否可以在此服务器上创建文件/HOME/u811029570/PUBLIC_HTMLTest.txt和另一个文件/home/u811029570/public_html/.well-known/acme-challenge/test2.txt?
是
是的,我要去,我还在连接,你已经相信你告诉我的地方的两个文件了。
在/home/u811029570/public_html/.well-known/acme-challenge/中
已经创建了一个具有ID名称的文件,即无序字母列表。
我必须在控制台上操作,网络无法正常工作