diff --git a/server/auth/google.js b/server/auth/google.js index 6c00ef3c..61645e43 100644 --- a/server/auth/google.js +++ b/server/auth/google.js @@ -77,7 +77,7 @@ router.get('google.callback', auth({ required: false }), async ctx => { }, }); - const [user] = await User.findOrCreate({ + const [user, isFirstSignin] = await User.findOrCreate({ where: { service: 'google', serviceId: profile.data.id, @@ -97,7 +97,7 @@ router.get('google.callback', auth({ required: false }), async ctx => { } // set cookies on response and redirect to team subdomain - ctx.signIn(user, team, 'google'); + ctx.signIn(user, team, 'google', isFirstSignin); }); export default router; diff --git a/server/auth/slack.js b/server/auth/slack.js index 45ee15f0..c013a91d 100644 --- a/server/auth/slack.js +++ b/server/auth/slack.js @@ -46,7 +46,7 @@ router.get('slack.callback', auth({ required: false }), async ctx => { }, }); - const [user] = await User.findOrCreate({ + const [user, isFirstSignin] = await User.findOrCreate({ where: { service: 'slack', serviceId: data.user.id, @@ -66,7 +66,7 @@ router.get('slack.callback', auth({ required: false }), async ctx => { } // set cookies on response and redirect to team subdomain - ctx.signIn(user, team, 'slack'); + ctx.signIn(user, team, 'slack', isFirstSignin); }); router.get('slack.commands', auth(), async ctx => { diff --git a/server/middlewares/authentication.js b/server/middlewares/authentication.js index c95450a1..8b95872d 100644 --- a/server/middlewares/authentication.js +++ b/server/middlewares/authentication.js @@ -93,7 +93,7 @@ export default function auth(options?: { required?: boolean } = {}) { ctx.cache[user.id] = user; } - ctx.signIn = (user, team, service) => { + ctx.signIn = (user, team, service, isFirstSignin = false) => { // update the database when the user last signed in user.updateSignedIn(ctx.request.ip); @@ -138,7 +138,7 @@ export default function auth(options?: { required?: boolean } = {}) { httpOnly: false, expires, }); - ctx.redirect(`${team.url}/dashboard`); + ctx.redirect(`${team.url}/dashboard${isFirstSignin ? '?welcome' : ''}`); } };