Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Register
Sign in
Toggle navigation
Menu
UPSMF
uphrh-SunbirdEd-portal-old
Commits
0c67813d
Commit
0c67813d
authored
5 years ago
by
Devesh
Browse files
Options
Download
Patches
Plain Diff
Issue #SB-13773 fix:handled mobile migration
parent
9b4d0c56
master
Dark_theme
SB-25589
SB-28090
aws_fileRead
contributions
dependabot/npm_and_yarn/src/app/client/decode-uri-component-0.2.2
dependabot/npm_and_yarn/src/app/decode-uri-component-0.2.2
dependabot/npm_and_yarn/src/app/express-4.17.3
dependabot/npm_and_yarn/src/app/jsonwebtoken-9.0.0
dependabot/npm_and_yarn/src/desktop/OpenRAP/decode-uri-component-0.2.2
dependabot/npm_and_yarn/src/desktop/OpenRAP/express-4.17.3
dependabot/npm_and_yarn/src/desktop/OpenRAP/jsonwebtoken-9.0.0
dependabot/npm_and_yarn/src/desktop/OpenRAP/qs-6.5.3
dependabot/npm_and_yarn/src/desktop/decode-uri-component-0.2.2
dependabot/npm_and_yarn/src/desktop/express-4.17.3
dependabot/npm_and_yarn/src/desktop/jsonwebtoken-9.0.0
dependabot/npm_and_yarn/src/desktop/qs-6.10.3
desktop-common-consumption
filters_5.1.1
gcp
gcp_test
keshavprasadms-patch-1
keshavprasadms-patch-2
release-2.10.0
release-2.10.1
release-2.10.2
release-2.10.3
release-2.4.0
release-2.4.1
release-2.4.2
release-2.5.0
release-2.5.1
release-2.6.0
release-2.6.0-loadtest
release-2.6.5
release-2.6.6
release-2.7.0
release-2.8.0
release-2.8.1
release-2.8.10
release-2.8.11
release-2.8.12
release-2.8.2
release-2.8.3
release-2.8.4
release-2.8.5
release-2.8.6
release-2.8.7
release-2.8.8
release-2.8.9
release-2.9.0
release-3.0
release-3.0-merge
release-3.0.0
release-3.0.1
release-3.0.2
release-3.0.3
release-3.0.4
release-3.0.4-sso
release-3.1.0
release-3.1.1
release-3.1.2
release-3.2.0
release-3.2.1
release-3.2.10
release-3.2.11
release-3.2.12
release-3.2.13
release-3.2.14
release-3.2.2
release-3.2.3
release-3.2.4
release-3.3.0
release-3.3.0-telemetry-fix
release-3.3.1
release-3.3.2
release-3.4.0
release-3.4.1
release-3.4.2
release-3.4.3
release-3.4.4
release-3.4.5
release-3.4.6
release-3.4.7
release-3.5.0
release-3.5.1
release-3.5.2
release-3.5.3
release-3.6.0
release-3.6.1
release-3.6.5
release-3.6.6
release-3.7.0
release-3.7.1
release-3.7.2
release-3.8.0
release-3.8.1
release-3.8.2
release-3.8.3
release-3.9.0
release-3.9.1
release-3.9.2
release-3.9.3
release-4.0.0
release-4.0.1
release-4.0.2
release-4.1
release-4.1.0
release-4.1.1
release-4.10.0
release-4.10.0.1
release-4.10.1
release-4.10.2
release-4.10.2.1
release-4.10.2.2
release-4.10.3
release-4.2.0
release-4.2.1
release-4.3.0
release-4.3.1
release-4.4.0
release-4.4.1
release-4.5.0
release-4.5.1
release-4.5.2
release-4.6.0
release-4.7.0
release-4.7.1
release-4.8.0
release-4.8.5
release-4.9.0
release-4.9.1
release-5.0.0
release-5.0.0.1
release-5.0.0.2
release-5.0.0.3
release-5.0.1
release-5.0.2
release-5.1.0
release-5.1.1
release-sonarcloud
revert-3718-copypi
revert-3842-release-2.8.7
revert-3890-release-2.8.9
revert-4427-player-cache-issue
revert-4537-SB-19763
revert-5244-sh-809
revert-5260-SB-table-3.3.0
revert-8284-release-5.0.0
sharathkashyap-patch-1
Tags unavailable
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/app/routes/ssoRoutes.js
+19
-6
src/app/routes/ssoRoutes.js
with
19 additions
and
6 deletions
+19
-6
src/app/routes/ssoRoutes.js
+
19
−
6
View file @
0c67813d
...
...
@@ -38,6 +38,7 @@ module.exports = (app) => {
errType
=
'
USER_FETCH_API
'
;
userDetails
=
await
fetchUserWithExternalId
(
jwtPayload
,
req
);
req
.
session
.
userDetails
=
userDetails
;
console
.
log
(
"
userDetails fetched
"
,
userDetails
);
if
(
!
_
.
isEmpty
(
userDetails
)
&&
(
userDetails
.
phone
||
userDetails
.
email
))
{
redirectUrl
=
successUrl
+
getQueryParams
({
id
:
userDetails
.
userName
});
logger
.
info
({
...
...
@@ -253,6 +254,7 @@ module.exports = (app) => {
errType
=
'
FREE_UP_USER
'
;
await
freeUpUser
(
req
).
catch
(
handleProfileUpdateError
);
}
await
delay
();
errType
=
'
CREATE_USER
'
;
req
.
query
.
type
=
req
.
query
.
identifier
;
req
.
query
.
value
=
req
.
query
.
identifierValue
;
...
...
@@ -309,14 +311,17 @@ module.exports = (app) => {
stateToken
:
req
.
session
.
migrateAccountInfo
.
stateToken
,
userId
:
req
.
query
.
userId
,
identifier
:
req
.
query
.
identifier
,
identifierValue
:
req
.
query
.
identifierValue
identifierValue
:
req
.
query
.
identifierValue
,
client_id
:
req
.
session
.
migrateAccountInfo
.
client_id
};
errType
=
'
ERROR_ENCRYPTING_DATA
'
;
req
.
session
.
migrateAccountInfo
.
encryptedData
=
encrypt
(
JSON
.
stringify
(
dataToEncrypt
));
const
payload
=
JSON
.
stringify
(
req
.
session
.
migrateAccountInfo
.
encryptedData
);
url
=
`
${
envHelper
.
PORTAL_AUTH_SERVER_URL
}
/realms/
${
envHelper
.
PORTAL_REALM
}
/protocol/openid-connect/auth`
;
query
=
`?client_id=portal&state=3c9a2d1b-ede9-4e6d-a496-068a490172ee&identifierValue=
${
req
.
query
.
identifierValue
}
&redirect_uri=https://
${
req
.
get
(
'
host
'
)}
/migrate/account/login/callback&payload=
${
payload
}
&scope=openid&response_type=code&automerge=1&version=3&goBackUrl=https://
${
req
.
get
(
'
host
'
)}
/sign-in/sso/select-org`
;
console
.
log
(
'
url for migration
'
,
url
+
query
);
const
userInfo
=
`&userId=
${
req
.
query
.
userId
}
&identifierType=
${
req
.
query
.
identifier
}
&identifierValue=
${
req
.
query
.
identifierValue
}
`
;
redirectUrl
=
url
+
query
+
userInfo
;
console
.
log
(
'
url for migration
'
,
redirectUrl
);
}
catch
(
error
)
{
response
=
{
error
:
getErrorMessage
(
error
,
errType
)};
logger
.
error
({
...
...
@@ -329,7 +334,7 @@ module.exports = (app) => {
});
logErrorEvent
(
req
,
errType
,
error
);
}
finally
{
res
.
redirect
(
url
+
query
||
errorUrl
)
res
.
redirect
(
redirectUrl
||
errorUrl
)
}
});
...
...
@@ -353,8 +358,9 @@ module.exports = (app) => {
req
.
session
.
nonStateUserToken
=
nonStateUserToken
;
}
else
{
nonStateUserToken
=
await
generateAuthToken
(
req
.
query
.
code
,
`https://
${
req
.
get
(
'
host
'
)}
/migrate/account/login/callback`
).
catch
(
err
=>
{
console
.
log
(
'
error in verifyAuthToken
'
,
err
);
console
.
log
(
'
error in verifyAuthToken
'
,
err
.
error
);
console
.
log
(
'
error details
'
,
err
.
statusCode
,
err
.
message
)
res
.
redirect
(
errorUrl
)
});
const
userToken
=
parseJson
(
nonStateUserToken
);
req
.
session
.
nonStateUserToken
=
userToken
.
access_token
;
...
...
@@ -365,13 +371,20 @@ module.exports = (app) => {
app
.
all
(
'
/migrate/user/account
'
,
async
(
req
,
res
)
=>
{
let
stateUserData
,
stateJwtPayload
,
errType
;
console
.
log
(
'
migration initiated
'
,
req
.
session
.
nonStateUserToken
,
JSON
.
stringify
(
req
.
session
.
migrateAccountInfo
));
if
(
!
req
.
session
.
migrateAccountInfo
||
!
req
.
session
.
nonStateUserToken
)
{
// to support mobile flow
if
(
!
req
.
session
.
migrateAccountInfo
)
{
req
.
session
.
migrateAccountInfo
=
{
encryptedData
:
req
.
get
(
'
x-authenticated-user-data
'
)
}
}
req
.
session
.
nonStateUserToken
=
req
.
session
.
nonStateUserToken
||
req
.
get
(
'
x-authenticated-user-token
'
);
if
(
!
req
.
session
.
nonStateUserToken
||
!
(
req
.
session
.
migrateAccountInfo
&&
req
.
session
.
migrateAccountInfo
.
encryptedData
))
{
res
.
status
(
401
).
send
({
responseCode
:
'
UNAUTHORIZED
'
});
return
false
;
}
console
.
log
(
'
migration initiated
'
,
req
.
session
.
nonStateUserToken
,
JSON
.
stringify
(
req
.
session
.
migrateAccountInfo
));
console
.
log
(
'
decryption started
'
);
try
{
const
decryptedData
=
decrypt
(
req
.
session
.
migrateAccountInfo
.
encryptedData
);
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets