feat: Add hosted domain hint when signing in through Google SSO from subdomain (#2458)

* feat: Add hosted domain hint when signing in through Google SSO from subdomain

closes #2454
This commit is contained in:
Tom Moor
2021-08-20 14:03:52 -07:00
committed by GitHub
parent 0be40609ed
commit e613ec732b
3 changed files with 38 additions and 11 deletions

View File

@@ -10,6 +10,7 @@ import {
GoogleWorkspaceInvalidError,
} from "../../errors";
import passportMiddleware from "../../middlewares/passport";
import { AuthenticationProvider } from "../../models";
import { getAllowedDomains } from "../../utils/authentication";
import { StateStore } from "../../utils/passport";
@@ -86,13 +87,28 @@ if (GOOGLE_CLIENT_ID) {
)
);
router.get(
"google",
passport.authenticate(providerName, {
router.get("google", async (ctx) => {
const { authProviderId } = ctx.request.query;
if (authProviderId) {
ctx.assertUuid(authProviderId, "authProviderId must be a UUID");
}
const authProvider = authProviderId
? await AuthenticationProvider.findOne({
where: {
id: authProviderId,
name: providerName,
},
})
: undefined;
return passport.authenticate(providerName, {
accessType: "offline",
prompt: "select_account consent",
})
);
hd: authProvider?.providerId,
})(ctx);
});
router.get("google.callback", passportMiddleware(providerName));
}