Add auth module.

This commit is contained in:
mike.rode
2019-02-18 15:19:54 -06:00
parent 7ec224b192
commit d789d343af

View File

@@ -0,0 +1,27 @@
import uuid from 'uuid/v1';
import btoa from 'btoa';
import request from 'request-promise';
const rxAuthToken = /authenticationToken="([^"]+)"/;
const options = (username, password) => ({
url: 'https://plex.tv/users/sign_in.xml',
headers: {
'X-Plex-Client-Identifier': uuid(),
Authorization: `Basic ${encryptUserCreds(username, password)}`,
},
});
const encryptUserCreds = (username, password) => {
const creds = `${username}:${password}`;
return btoa(creds);
};
const fetchToken = (username, password) => {
request.post(options(username, password)).then(res => {
const token = res.match(rxAuthToken)[1];
return token;
});
};
export default fetchToken;