Created
November 5, 2019 11:28
-
-
Save bananatron/7156f105abf9dd1d33d7944db40467ac to your computer and use it in GitHub Desktop.
Devise Token Auth Tester
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<title>Devise Token Auth Tester</title> | |
<body> | |
<button onclick=window.sendTestRequest()>Test</button> | |
<script> | |
window.requestDelay = 2200 | |
window.apiUrl = `https://localhost:3000/api/whatever` | |
window.request_log = [] // Store a log of all requests for review | |
// Seed localstorage by calling AuthResource.create_new_auth_token (User, commonly) | |
if (!window.localStorage.getItem('accessToken')) { | |
window.localStorage.setItem('accessToken', 'aukcAAFoV51IoLITl5hoQA') | |
window.localStorage.setItem('client', 'f3kLDGEaFTKuJqVVAm470A') | |
window.localStorage.setItem('expiry', '1574158520') | |
window.localStorage.setItem('uid', '[email protected]') | |
} | |
window.sendTestRequest = function() { | |
let xhr = new XMLHttpRequest() | |
xhr.open("GET", window.apiUrl, true) | |
xhr.setRequestHeader('Content-Type', 'application/json') | |
xhr.setRequestHeader('token-type', 'Bearer') | |
xhr.setRequestHeader('access-token', window.localStorage.getItem('accessToken')) | |
xhr.setRequestHeader('client', window.localStorage.getItem('client')) | |
xhr.setRequestHeader('expiry', window.localStorage.getItem('expiry')) | |
xhr.setRequestHeader('uid', window.localStorage.getItem('uid')) | |
xhr.onload = function () { | |
window.request_log.push({ | |
response: xhr.response, | |
headers: xhr.getAllResponseHeaders(), | |
}) | |
console.log(`${window.request_log.length} request sent`) | |
// Set window headers for the next request | |
if (xhr.getResponseHeader('access-token')) { | |
console.log('token', xhr.getResponseHeader('access-token')) | |
window.localStorage.setItem('accessToken', xhr.getResponseHeader('access-token')) | |
} | |
if (xhr.getResponseHeader('client')) { | |
window.localStorage.setItem('client', xhr.getResponseHeader('client')) | |
} | |
if (xhr.getResponseHeader('expiry')) { | |
window.localStorage.setItem('expiry', xhr.getResponseHeader('expiry')) | |
} | |
} | |
xhr.send(null) // Let's get this party started | |
} | |
setInterval(() => { | |
window.sendTestRequest() | |
}, window.requestDelay) | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment