- More, more, more...
This commit is contained in:
@@ -2,17 +2,17 @@ const errors = require('restify-errors');
|
||||
|
||||
const config = require('../config');
|
||||
|
||||
const handlePassportResponse = (req, res, next) => (err, passportUser, info) => {
|
||||
const handlePassportResponse = (req, res, next) => (err, user, info) => {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
const isVerifiedUser = passportUser.isRegistrationVerified();
|
||||
if (passportUser && isVerifiedUser) {
|
||||
const user = passportUser;
|
||||
user.token = passportUser.generateJWT();
|
||||
const isVerifiedUser = user &&
|
||||
user.isRegistrationVerified();
|
||||
|
||||
if (user && isVerifiedUser) {
|
||||
return res.send({ ...user.toAuthJSON() });
|
||||
} else if (passportUser && !isVerifiedUser){
|
||||
} else if (user && !isVerifiedUser){
|
||||
return res.send({
|
||||
registrationSuccess: true,
|
||||
nextSteps: 'Check your email for our confirmation email, you will not be able to login without confirming.'
|
||||
@@ -71,7 +71,7 @@ module.exports = function (server, auth) {
|
||||
|
||||
/* Facebook */
|
||||
server.get(
|
||||
'/auth/facebook',
|
||||
'/auth/facebook/login',
|
||||
passport.authenticate('facebook', {
|
||||
scope: ['email', 'public_profile'],
|
||||
session: false,
|
||||
@@ -79,7 +79,7 @@ module.exports = function (server, auth) {
|
||||
);
|
||||
|
||||
server.get(
|
||||
'/auth/facebook/callback',
|
||||
'/auth/facebook/loggedin',
|
||||
(req, res, next) => {
|
||||
const callback = handlePassportResponse(req, res, next);
|
||||
return passport.authenticate(
|
||||
@@ -89,4 +89,50 @@ module.exports = function (server, auth) {
|
||||
)(req, res, next);
|
||||
}
|
||||
);
|
||||
|
||||
server.get(
|
||||
'/auth/facebook/link',
|
||||
auth.secure,
|
||||
(req, res, next) => {
|
||||
req.user.record.setLinkCheckBit((err, linkCheckBit) => {
|
||||
passport.authenticate('facebookLink', {
|
||||
scope: ['email', 'public_profile'],
|
||||
session: false,
|
||||
state: linkCheckbit,
|
||||
})(req, res, next),
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
server.get(
|
||||
'/auth/facebook/linked',
|
||||
(req, res, next) => {
|
||||
const linkCheckBit = req.query.state;
|
||||
|
||||
return passport.authenticate(
|
||||
'facebook',
|
||||
{ failureRedirect: '/profile' },
|
||||
(err, profile) => {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
User.linkFacebookProfile(linkCheckBit, profile, (err, user) => {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
if (!user) {
|
||||
return next(err, false, 'Linking the account to Facebook was unsuccessful, please try again.');
|
||||
}
|
||||
|
||||
res.send({
|
||||
success: true,
|
||||
info: 'Facerbook account successfully linked',
|
||||
});
|
||||
});
|
||||
},
|
||||
)(req, res, next);
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user