Skip to content

Instantly share code, notes, and snippets.

@bananatron
Created November 5, 2019 11:28
Show Gist options
  • Save bananatron/7156f105abf9dd1d33d7944db40467ac to your computer and use it in GitHub Desktop.
Save bananatron/7156f105abf9dd1d33d7944db40467ac to your computer and use it in GitHub Desktop.
Devise Token Auth Tester
<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@test.com')
}
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