You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.0 KiB
36 lines
1.0 KiB
export const logOut = () => { |
|
const form = document.createElement('form'); |
|
|
|
const methodInput = document.createElement('input'); |
|
methodInput.setAttribute('name', '_method'); |
|
methodInput.setAttribute('value', 'delete'); |
|
methodInput.setAttribute('type', 'hidden'); |
|
form.appendChild(methodInput); |
|
|
|
const csrfToken = document.querySelector<HTMLMetaElement>( |
|
'meta[name=csrf-token]', |
|
); |
|
|
|
const csrfParam = document.querySelector<HTMLMetaElement>( |
|
'meta[name=csrf-param]', |
|
); |
|
|
|
if (csrfParam && csrfToken) { |
|
const csrfInput = document.createElement('input'); |
|
csrfInput.setAttribute('name', csrfParam.content); |
|
csrfInput.setAttribute('value', csrfToken.content); |
|
csrfInput.setAttribute('type', 'hidden'); |
|
form.appendChild(csrfInput); |
|
} |
|
|
|
const submitButton = document.createElement('input'); |
|
submitButton.setAttribute('type', 'submit'); |
|
form.appendChild(submitButton); |
|
|
|
form.method = 'post'; |
|
form.action = '/auth/sign_out'; |
|
form.style.display = 'none'; |
|
|
|
document.body.appendChild(form); |
|
submitButton.click(); |
|
};
|
|
|