set logged in from GovGateway Code
This commit is contained in:
+54
-7
@@ -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 },
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user