mirror of https://github.com/rancher/dashboard.git
60 lines
1.1 KiB
Vue
60 lines
1.1 KiB
Vue
<script>
|
|
import {
|
|
AUTH_TEST, GITHUB_CODE, GITHUB_NONCE, _FLAGGED, BACK_TO
|
|
} from '@/config/query-params';
|
|
|
|
export default {
|
|
layout: 'unauthenticated',
|
|
|
|
async fetch({ store, route, redirect }) {
|
|
if ( route.query[AUTH_TEST] === _FLAGGED ) {
|
|
return;
|
|
}
|
|
|
|
const res = await store.dispatch('auth/verifyGithub', {
|
|
code: route.query[GITHUB_CODE],
|
|
nonce: route.query[GITHUB_NONCE],
|
|
});
|
|
|
|
if ( res === true ) {
|
|
const backTo = route.query[BACK_TO] || '/';
|
|
|
|
redirect(backTo);
|
|
} else {
|
|
redirect(`/auth/login?err=${ escape(res) }`);
|
|
}
|
|
},
|
|
|
|
data() {
|
|
return { testing: this.$route.query[AUTH_TEST] === _FLAGGED };
|
|
},
|
|
|
|
mounted() {
|
|
if ( this.testing ) {
|
|
try {
|
|
window.opener.window.onAuthTest(this.$route.query[GITHUB_CODE]);
|
|
|
|
setTimeout(() => {
|
|
window.close();
|
|
}, 250);
|
|
} catch (e) {
|
|
window.close();
|
|
}
|
|
}
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<template>
|
|
<main>
|
|
<h1 class="text-center mt-50">
|
|
<span v-if="testing">
|
|
Testing…
|
|
</span>
|
|
<span v-else>
|
|
Logging In…
|
|
</span>
|
|
</h1>
|
|
</main>
|
|
</template>
|