Repository navigation
Expand file tree
/
Copy pathauth.html
More file actions
68 lines (64 loc) · 2.5 KB
/
Copy pathauth.html
File metadata and controls
68 lines (64 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script>
function getURLParams(search) {
var queryParams = {}, queryArray, singleQuery;
queryArray = search.substr(1).split("&");
for (var i = 0; i < queryArray.length; i++) {
if (queryArray[i].indexOf("=") > -0) {
singleQuery = queryArray[i].split("=");
if (singleQuery.length == 2) {
queryParams[decodeURIComponent(singleQuery[0])] = decodeURIComponent(singleQuery[1]);
}
}
}
return queryParams;
}
function _getAccountIdFromUnifiedConfig(params) {
var state = params.state;
var redirectURI = params.redirect_uri;
if (state) {
state = JSON.parse(state);
if (state.lpUnifiedWindowConfig) {
return state.lpUnifiedWindowConfig.accountId;
}
}
else if (redirectURI) {
redirectURI = decodeURIComponent(redirectURI);
var search = redirectURI.split('?');
if (search.length > 0) {
var urlParams = getURLParams('?' + search[1]);
if (urlParams.lpUnifiedWindowConfig) {
var conf = JSON.parse(urlParams.lpUnifiedWindowConfig);
return (conf && conf.accountId) || '';
}
}
}
return '';
}
window.doLogIn = function () {
var visitorName = document.getElementById("visitorNameForUMSAuth").value;
var queryParams = getURLParams(window.location.search);
if (!visitorName) {
visitorName = queryParams.client_id
}
var state = '';
var accountId = '';
if(queryParams.state){
state = '&state=' + queryParams.state;
}
if(_getAccountIdFromUnifiedConfig(queryParams)){
var accountId = '&accountId=' + _getAccountIdFromUnifiedConfig(queryParams)
}
window.location.href = queryParams.redirect_uri + (queryParams.redirect_uri.includes('?') ? '&' : '?') + "code=" + visitorName + "&lpDebug=2" + state + accountId;
}
</script>
</head>
<body>
Visitor name for authentication: <input id="visitorNameForUMSAuth" type="text">
<button id="authButton" style="font-size: 15px;" onclick="doLogIn()">Login!</button>
</body>
</html>