This commit is contained in:
UKDTOM 2021-01-04 01:41:25 +01:00
parent d9d0e0c68f
commit e0de53b409
3 changed files with 26 additions and 13 deletions

View file

@ -37,7 +37,9 @@
"Password": "Password", "Password": "Password",
"PasswordPrompt": "Enter your plex.tv password", "PasswordPrompt": "Enter your plex.tv password",
"UsernameSave": "Remember Username", "UsernameSave": "Remember Username",
"LoginBtn": "Sign in" "LoginBtn": "Sign in",
"twoFA": "2Factor Authentication Code",
"twoFAPrompt": "If using 2FA, enter your code here, else leave as blank (optional)"
}, },
"SelServer": "Select Server", "SelServer": "Select Server",
"Menu": { "Menu": {

View file

@ -31,6 +31,14 @@
<b-form-input type="password" id="input-2" v-model="input.password" trim></b-form-input> <b-form-input type="password" id="input-2" v-model="input.password" trim></b-form-input>
</b-form-group> </b-form-group>
<b-form-group
id="fieldset-3"
:description="$t('Common.Login.twoFAPrompt')"
:label="$t('Common.Login.twoFA')"
label-for="input-1">
<b-form-input id="input-3" v-model="input.twoFA" trim></b-form-input>
</b-form-group>
<b-form-group> <b-form-group>
<b-form-checkbox <b-form-checkbox
id="checkbox-1" id="checkbox-1"
@ -81,7 +89,7 @@ export default {
log.verbose(`We have an Auth Token from cli or dev option`) log.verbose(`We have an Auth Token from cli or dev option`)
store.dispatch('loginToPlexWithToken', { store.dispatch('loginToPlexWithToken', {
token: this.$store.getters.getAuthToken token: this.$store.getters.getAuthToken
}) })
} }
}, },
methods: { methods: {
@ -91,7 +99,8 @@ export default {
plexLogin(){ plexLogin(){
store.dispatch('loginToPlex', { store.dispatch('loginToPlex', {
username: this.input.username, username: this.input.username,
password: this.input.password password: this.input.password,
twoFA: this.input.twoFA
}) })
if(this.checkbox){ if(this.checkbox){

View file

@ -101,22 +101,24 @@ const actions = {
}, },
loginToPlex({ commit }, payload){ loginToPlex({ commit }, payload){
log.info("loginToPlex called") log.info("loginToPlex called")
var url = 'https://plex.tv/api/v2/users/signin';
url = url + '?login=' + payload.username;
url = url + '&password=' + payload.password;
if ( payload.twoFA ){
url = url + '&verificationCode=' + payload.twoFA
}
axios({ axios({
method: 'POST', method: 'POST',
url: 'https://plex.tv/users/sign_in.json', url: url,
auth: {
username : payload.username,
password: payload.password
},
headers: wtutils.PMSHeader headers: wtutils.PMSHeader
}) })
.then(function (response) { .then(function (response) {
log.debug('loginToPlex: Response from fetchPlexServers recieved') log.debug('loginToPlex: Response from fetchPlexServers recieved')
commit('UPDATE_AUTHTOKEN', response.data.user.authToken) commit('UPDATE_AUTHTOKEN', response.data.authToken)
commit('UPDATE_AUTHENTICATED', true) commit('UPDATE_AUTHENTICATED', true)
commit('UPDATE_AVATAR', response.data.user.thumb) commit('UPDATE_AVATAR', response.data.thumb)
commit('UPDATE_PLEXNAME', response.data.user.username) commit('UPDATE_PLEXNAME', response.data.username)
router.replace({name: "home"}); router.replace({name: "home"});
}) })
.catch(function (error) { .catch(function (error) {
if (error.response) { if (error.response) {