pleroma-fe/src/components/login_form/login_form.js

63 lines
1.7 KiB
JavaScript
Raw Normal View History

2018-10-27 00:20:39 +11:00
import oauthApi from '../../services/new_api/oauth.js'
2016-10-28 03:02:41 +11:00
const LoginForm = {
data: () => ({
user: {},
authError: false
2016-10-28 03:02:41 +11:00
}),
computed: {
2018-11-08 02:56:12 +11:00
loginMethod () { return this.$store.state.instance.loginMethod },
loggingIn () { return this.$store.state.users.loggingIn },
2018-09-10 04:21:23 +10:00
registrationOpen () { return this.$store.state.instance.registrationOpen }
2016-10-28 03:02:41 +11:00
},
methods: {
2018-10-27 00:16:23 +11:00
oAuthLogin () {
const { clientId } = this.$store.state.oauth
const data = {
clientId,
2018-10-27 00:16:23 +11:00
instance: this.$store.state.instance.server,
commit: this.$store.commit
}
oauthApi.getOrCreateApp(data)
.then((app) => { oauthApi.login({ ...app, ...data }) })
2018-10-27 00:16:23 +11:00
},
2016-10-28 03:02:41 +11:00
submit () {
const { clientId } = this.$store.state.oauth
2018-11-08 02:56:12 +11:00
const data = {
clientId,
instance: this.$store.state.instance.server,
commit: this.$store.commit
2018-11-08 02:56:12 +11:00
}
this.clearError()
2018-11-08 02:56:12 +11:00
oauthApi.getOrCreateApp(data).then((app) => {
oauthApi.getTokenWithCredentials(
{
...app,
2018-11-08 02:56:12 +11:00
instance: data.instance,
username: this.user.username,
2019-01-29 02:48:00 +11:00
password: this.user.password
}
).then(async (result) => {
2019-01-29 02:48:00 +11:00
if (result.error) {
this.authError = result.error
this.user.password = ''
return
}
this.$store.commit('setToken', result.access_token)
try {
await this.$store.dispatch('loginUser', result.access_token)
2019-04-10 02:19:48 +10:00
this.$router.push({name: 'friends'})
} catch (e) {
console.log(e)
}
2019-01-29 02:48:00 +11:00
})
2018-11-08 02:56:12 +11:00
})
},
clearError () {
this.authError = false
2016-10-28 03:02:41 +11:00
}
}
}
export default LoginForm