Browse Source

add i am smart

master
Anna Ho 1 year ago
parent
commit
1921626115
4 changed files with 50 additions and 25 deletions
  1. +35
    -19
      src/auth/utils.js
  2. +3
    -3
      src/pages/authentication/RegisterCustom.js
  3. +11
    -2
      src/pages/iAmSmart/AuthCallback/index.js
  4. +1
    -1
      src/routes/LoginRoutes.js

+ 35
- 19
src/auth/utils.js View File

@@ -10,42 +10,58 @@ export const hostname = 'localhost';
const hostPort = '8090'; const hostPort = '8090';
export const hostPath = `http://${hostname}:${hostPort}`; export const hostPath = `http://${hostname}:${hostPort}`;
//export const apiPath = `http://192.168.0.112:8090/api`; //export const apiPath = `http://192.168.0.112:8090/api`;
<<<<<<< HEAD
//export const apiPath = `${hostPath}/api`;
export const apiPath = `/api`;
=======

export const apiPath = `${hostPath}/api`; export const apiPath = `${hostPath}/api`;
//export const apiPath = `/api`; //export const apiPath = `/api`;
>>>>>>> master

export const paymentPath = `http://pnspsdev.gld.gov.hk/payment`; export const paymentPath = `http://pnspsdev.gld.gov.hk/payment`;


export const iAmSmartPath = `https://apigw-isit.staging-eid.gov.hk`; export const iAmSmartPath = `https://apigw-isit.staging-eid.gov.hk`;
export const clientId = "cf61fa7c121e4869966f69c8694b1cd2"; export const clientId = "cf61fa7c121e4869966f69c8694b1cd2";
export const getBowerType=()=>{

export const iAmSmartCallbackPath = () => {
let hostname = window.location.hostname;
if (hostname.match("localhost")) {
hostname = "pnspsuat.gld.gov.hk";
}
return hostname;
};

export const getNonce = () => {
let hostname = window.location.hostname;
if (hostname.match("localhost")) {
hostname = "pnspsuat.gld.gov.hk";
}
return hostname;
};



export const getBowerType = () => {
console.log(navigator.userAgent) console.log(navigator.userAgent)
// const regex = /Mobi|Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Mi|huawei|Opera Mini|SAMSUNG|Samsung|SGH-[I|N|T]|GT-[I|N]|SM-[A|N|P|T|Z]|SHV-E|SCH-[I|J|R|S]|SPH-L/i; // const regex = /Mobi|Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Mi|huawei|Opera Mini|SAMSUNG|Samsung|SGH-[I|N|T]|GT-[I|N]|SM-[A|N|P|T|Z]|SHV-E|SCH-[I|J|R|S]|SPH-L/i;
// if(!regex.test(navigator.userAgent)) // if(!regex.test(navigator.userAgent))


if (navigator.userAgent.indexOf("Edg") != -1) { if (navigator.userAgent.indexOf("Edg") != -1) {
if(navigator.userAgent.match(/Android/i)) return "Android_Edge"
if(navigator.userAgent.match(/iPhone|iPad|iPod/i)) return "iOS_Edge"
if (navigator.userAgent.match(/Android/i)) return "Android_Edge"
if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) return "iOS_Edge"
return "PC_Browser" return "PC_Browser"
}else if(navigator.userAgent.indexOf("Chrome") != -1){
if(navigator.userAgent.match(/Android/i)) return "Android_Chrome"
if(navigator.userAgent.match(/iPhone|iPad|iPod/i)) return "iOS_Chrome"
} else if (navigator.userAgent.indexOf("Chrome") != -1) {
if (navigator.userAgent.match(/Android/i)) return "Android_Chrome"
if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) return "iOS_Chrome"
return "PC_Browser" return "PC_Browser"
}else if(navigator.userAgent.indexOf("Safari") != -1){
if(navigator.userAgent.match(/iPhone|iPad|iPod/i)) return "iOS_Safari"
} else if (navigator.userAgent.indexOf("Safari") != -1) {
if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) return "iOS_Safari"
return "PC_Browser" return "PC_Browser"
}else if(navigator.userAgent.indexOf("Firefox") != -1){
if(navigator.userAgent.match(/Android/i)) return "Android_Firefox"
if(navigator.userAgent.match(/iPhone|iPad|iPod/i)) return "iOS_Firefox"
} else if (navigator.userAgent.indexOf("Firefox") != -1) {
if (navigator.userAgent.match(/Android/i)) return "Android_Firefox"
if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) return "iOS_Firefox"
return "PC_Browser" return "PC_Browser"
}else if(navigator.userAgent.match(/SAMSUNG|Samsung|SGH-[I|N|T]|GT-[I|N]|SM-[A|N|P|T|Z]|SHV-E|SCH-[I|J|R|S]|SPH-L/i)){
} else if (navigator.userAgent.match(/SAMSUNG|Samsung|SGH-[I|N|T]|GT-[I|N]|SM-[A|N|P|T|Z]|SHV-E|SCH-[I|J|R|S]|SPH-L/i)) {
return "Android_Samsung" return "Android_Samsung"
}else if(navigator.userAgent.match(/huawei/i)){
} else if (navigator.userAgent.match(/huawei/i)) {
return "Android_Huawei" return "Android_Huawei"
}else if(navigator.userAgent.match(/Mi/i)){
} else if (navigator.userAgent.match(/Mi/i)) {
return "Android_Xiaomi" return "Android_Xiaomi"
} }
return "PC_Browser"; return "PC_Browser";


+ 3
- 3
src/pages/authentication/RegisterCustom.js View File

@@ -9,7 +9,7 @@ import Typography from '@mui/material/Typography';
import iAmSmartICon from 'assets/images/icons/icon_iAmSmart.png'; import iAmSmartICon from 'assets/images/icons/icon_iAmSmart.png';
import banner from 'assets/images/bg_ml.jpg'; import banner from 'assets/images/bg_ml.jpg';
import { Stack } from '../../../node_modules/@mui/material/index'; import { Stack } from '../../../node_modules/@mui/material/index';
import { iAmSmartPath, clientId, getBowerType } from 'auth/utils'
import { iAmSmartPath, clientId, getBowerType , iAmSmartCallbackPath} from 'auth/utils'


import * as React from 'react'; import * as React from 'react';


@@ -25,13 +25,13 @@ const RegisterCustom = () => {
} }


const getQRWithIAmSmart = () => { const getQRWithIAmSmart = () => {
let callbackUrl = "https://"+window.location.hostname+"/iamsmart/logincallback";
let callbackUrl = "https://"+iAmSmartCallbackPath()+"/iamsmart/authcallback";
let url = iAmSmartPath + "/api/v1/auth/getQR" let url = iAmSmartPath + "/api/v1/auth/getQR"
+ "?clientID=" + clientId + "?clientID=" + clientId
+ "&responseType=code" + "&responseType=code"
+"&source=" + getBowerType() +"&source=" + getBowerType()
+"&redirectURI="+encodeURIComponent(callbackUrl) +"&redirectURI="+encodeURIComponent(callbackUrl)
+"&scope=eidapi_formFilling"
+"&scope="+encodeURIComponent("eidapi_auth eidapi_profiles")
+"&lang=zh-HK"//en-US, zh-HK, or zh-CN +"&lang=zh-HK"//en-US, zh-HK, or zh-CN
//+"&state=" //+"&state="
+"&brokerPage=false" +"&brokerPage=false"


+ 11
- 2
src/pages/iAmSmart/AuthCallback/index.js View File

@@ -10,6 +10,8 @@ import {
import * as React from "react"; import * as React from "react";
import { useFormik, FormikProvider } from 'formik'; import { useFormik, FormikProvider } from 'formik';
import * as yup from 'yup'; import * as yup from 'yup';
import { useParams } from "react-router-dom";
//import { iAmSmartPath, clientId, getBowerType , iAmSmartCallbackPath} from 'auth/utils'


import Loadable from 'components/Loadable'; import Loadable from 'components/Loadable';
const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent')));
@@ -29,15 +31,22 @@ const BackgroundHead = {


const Index = () => { const Index = () => {


const params = useParams();
const [onReady, setOnReady] = React.useState(false); const [onReady, setOnReady] = React.useState(false);
const [checkUsername, setCheckUsername] = React.useState(false); const [checkUsername, setCheckUsername] = React.useState(false);
const [props, setProps] = React.useState({}); const [props, setProps] = React.useState({});


React.useEffect(() => { React.useEffect(() => {
setOnReady(true);
setProps({});
if(params.code){
setOnReady(true);
setProps({});
}
}, []); }, []);


// function loadIAmSmartProfile(){

// }

function displayErrorMsg(errorMsg) { function displayErrorMsg(errorMsg) {
return <Typography variant="errorMessage1">{errorMsg}</Typography> return <Typography variant="errorMessage1">{errorMsg}</Typography>
} }


+ 1
- 1
src/routes/LoginRoutes.js View File

@@ -54,7 +54,7 @@ const LoginRoutes = {
element: <IAmSmart_AuthCallback/> element: <IAmSmart_AuthCallback/>
}, },
{ {
path: 'iamsmart/loginfailback',
path: 'iamsmart/loginfallback',
element: <IAmSmart_FailCallback/> element: <IAmSmart_FailCallback/>
}, },
{ {


Loading…
Cancel
Save