Prevent open redirect on login

This commit is contained in:
Ciarán Ainsworth 2021-07-26 18:54:14 +00:00 committed by Georg Krause
parent d72fd1829f
commit da6e7893ac
No known key found for this signature in database
GPG Key ID: FD479B9A4D48E632
2 changed files with 17 additions and 6 deletions

View File

@ -1025,6 +1025,7 @@ export default new Router({
},
{
path: '*',
name: '404',
component: () =>
import(/* webpackChunkName: "core" */ '@/components/PageNotFound')
}

View File

@ -3,30 +3,40 @@
<section class="ui vertical stripe segment">
<div class="ui small text container">
<h2><translate translate-context="Content/Login/Title/Verb">Log in to your Funkwhale account</translate></h2>
<login-form :next="next"></login-form>
<login-form :next="redirectTo"></login-form>
</div>
</section>
</main>
</template>
<script>
import LoginForm from "@/components/auth/LoginForm"
import LoginForm from '@/components/auth/LoginForm'
export default {
props: {
next: { type: String, default: "/library" }
next: { type: String, default: '/library' }
},
data () {
return {
redirectTo: this.next
}
},
components: {
LoginForm
},
created () {
const resolved = this.$router.resolve(this.redirectTo)
console.log(resolved.route.name)
if (resolved.route.name === '404') {
this.redirectTo = '/library'
}
if (this.$store.state.auth.authenticated) {
this.$router.push(this.next)
this.$router.push(this.redirectTo)
}
},
computed: {
labels() {
let title = this.$pgettext('Head/Login/Title', "Log In")
labels () {
const title = this.$pgettext('Head/Login/Title', 'Log In')
return {
title
}