From 543a4e4ccd71b41e70aa61437c2b57cdf45cedb6 Mon Sep 17 00:00:00 2001 From: alsotang Date: Tue, 20 Aug 2019 22:35:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B=E6=B2=A1=E6=9C=89=E5=85=AC?= =?UTF-8?q?=E5=BC=80=20email=20=E7=9A=84=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/github.js | 16 ++++++++-------- views/sign/new_oauth.html | 4 ++-- views/sign/no_github_email.html | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/controllers/github.js b/controllers/github.js index 363cd7a..9fdbaed 100644 --- a/controllers/github.js +++ b/controllers/github.js @@ -9,6 +9,10 @@ var validator = require('validator'); exports.callback = function (req, res, next) { var profile = req.user; var email = profile.emails && profile.emails[0] && profile.emails[0].value; + if (!email) { + return res.status(500) + .render('sign/no_github_email'); + } User.findOne({githubId: profile.id}, function (err, user) { if (err) { return next(err); @@ -27,10 +31,6 @@ exports.callback = function (req, res, next) { if (err) { // 根据 err.err 的错误信息决定如何回应用户,这个地方写得很难看 if (err.message.indexOf('duplicate key error') !== -1) { - if (err.message.indexOf('email') !== -1) { - return res.status(500) - .render('sign/no_github_email'); - } if (err.message.indexOf('loginname') !== -1) { return res.status(500) .send('您 GitHub 账号的用户名与之前在 CNodejs 注册的用户名重复了'); @@ -68,6 +68,10 @@ exports.create = function (req, res, next) { delete req.session.profile; var email = profile.emails && profile.emails[0] && profile.emails[0].value; + if (!email) { + return res.status(500) + .render('sign/no_github_email'); + } if (isnew) { // 注册新账号 var user = new User({ loginname: profile.username, @@ -84,10 +88,6 @@ exports.create = function (req, res, next) { if (err) { // 根据 err.err 的错误信息决定如何回应用户,这个地方写得很难看 if (err.message.indexOf('duplicate key error') !== -1) { - if (err.message.indexOf('email') !== -1) { - return res.status(500) - .render('sign/no_github_email'); - } if (err.message.indexOf('loginname') !== -1) { return res.status(500) .send('您 GitHub 账号的用户名与之前在 CNodejs 注册的用户名重复了'); diff --git a/views/sign/new_oauth.html b/views/sign/new_oauth.html index ffe7cd2..ebf5d47 100644 --- a/views/sign/new_oauth.html +++ b/views/sign/new_oauth.html @@ -3,7 +3,7 @@
@@ -16,7 +16,7 @@
- +
diff --git a/views/sign/no_github_email.html b/views/sign/no_github_email.html index 43df3e7..f7972a9 100644 --- a/views/sign/no_github_email.html +++ b/views/sign/no_github_email.html @@ -1,7 +1,7 @@ GitHub 登陆出错