blob: facbf7c21c924f2844d3758c88b47d8472888067 [file] [log] [blame]
<!DOCTYPE html>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
~ this work for additional information regarding copyright ownership.
~ The ASF licenses this file to You under the Apache License, Version 2.0
~ (the "License"); you may not use this file except in compliance with
~ the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<html>
<head>
<title>Github Login in progress ...</title>
<link href="css/style.css" rel="stylesheet" type="text/css" media="all" />
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="js/login.js"></script>
<script>
var executed = false;
(document.onready = function () {
if(executed) {
return;
}
executed = true;
<!-- getting query params -->
<!-- -->
var match,
pl = /\+/g, // Regex for replacing addition symbol with a space
search = /([^&=]+)=?([^&]*)/g,
decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
query = window.location.search.substring(1);
var urlParams = {};
while (match = search.exec(query))
urlParams[decode(match[1])] = decode(match[2]);
if(getCookie("initialState") != urlParams["state"]) {
window.alert("CSRF attack!");
return;
}
if(!urlParams["code"]) {
window.alert("Access denied!");
return;
}
var formData = {};
formData.code = urlParams["code"];
formData.state = urlParams["state"];
formData.provider = "github";
formData.grant_type = "third_party";
<!-- send code to backgroupd processing -->
$.ajax({
type: 'POST',
url: "/v1/token",
data: formData,
success: function (data) {
console.log(JSON.stringify(data));
window.localStorage.setItem("token", JSON.stringify(data));
window.location = "/ui/operation.html";
},
error: function(data) {
console.log(JSON.stringify(data));
var error = document.getElementById("error");
error.textContent="Login failed";
error.hidden=false;
},
async: true
});
})();
</script>
</head>
<body>
<div class="header">
<h2>Login With Github</h2>
</div>
<div class="section">
<form method="POST" enctype="multipart/form-data">
<input type="button" value="Login With Github" onclick="loginWithGithubAction()">
</form>
</div>
<div class="footer">
<p id="error" hidden="true" class="error"/>
</div>
</body>
</html>