set logged in from GovGateway Code

This commit is contained in:
2021-12-07 08:14:15 +00:00
parent 8bf7fd973e
commit bcfef0ec91
4 changed files with 111 additions and 13 deletions
+54 -7
View File
@@ -14,18 +14,42 @@ import { wrapper } from "../store/store";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
import { getIncidents } from "../actions";
import { parseCookies } from "nookies";
import { getProviderConfig, getGGToken } from "../actions/govgateway";
import {
getProviderConfig,
getGGToken,
getUserInfo,
getPortalLogin,
} from "../actions/govgateway";
import { getToken } from "../actions";
import { getGovGatewayConfig } from "../store/govgateway/action";
import {
setLoggedInUserId,
setAccountDetails,
} from "../store/accountDetails/action";
import { parseCookies, setCookie, destroyCookie } from "nookies";
const Home = (props) => {
const { footerLinks, pages, showLogin } = props;
const { footerLinks, pages, showLogin, loggedInUserId } = props;
let { t, lang } = useTranslation();
const router = useRouter();
const { locale } = router;
let now = new Date();
let expDate = new Date(now);
expDate.setDate(now.getDate() + 1);
_.isEmpty(loggedInUserId) == false &&
(setCookie(null, "pinsUser", loggedInUserId.value[0].contactid, {
path: "/",
expires: expDate,
}),
router.replace({
pathname: router.locale == "cy" ? "/fymhorth" : "/myportal",
shallow: true,
}));
return (
<div>
<Head>
@@ -81,7 +105,11 @@ const Home = (props) => {
<Header courseName="Appeals Casework Portal" />
<div className="govuk-width-container">
<ServiceBanner />
<Main pages={pages} showLogin={showLogin} />
<Main
pages={pages}
showLogin={showLogin}
loggedInUserId={loggedInUserId}
/>
</div>
<Footer footerLinks={footerLinks} />
</div>
@@ -93,6 +121,9 @@ export const getServerSideProps = wrapper.getServerSideProps(
(store) => async (ctx) => {
const { query, req, res } = ctx;
var relayToken = await getToken();
relayToken = relayToken.access_token;
console.log(query.code);
const showLoginCheck = process.env.SHOWLOGIN || false;
@@ -106,17 +137,33 @@ export const getServerSideProps = wrapper.getServerSideProps(
store.dispatch(getGovGatewayConfig(providerConfig));
let ggUserInfo = {};
let portalUserObj = {};
if (hasLoginCode == true) {
let ggToken = await getGGToken(
const ggToken = await getGGToken(
providerConfig.token_endpoint,
query.code,
process.env.GG_REDIRECT_URI
);
console.log(ggToken);
_.has(ggToken, "access_token")
? ((ggUserInfo = await getUserInfo(
providerConfig.userinfo_endpoint,
ggToken.access_token
)),
(portalUserObj = await getPortalLogin(
ggUserInfo.data.email,
relayToken
)),
store.dispatch(setAccountDetails(portalUserObj)))
: console.log(
ggToken.status + " " + ggToken.data.error_description
);
}
return {
props: { showLogin: showLoginCheck },
props: { showLogin: showLoginCheck, loggedInUserId: portalUserObj },
};
}
);