mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-07 05:31:15 -07:00
Set different client ID when fetching a new Plex token
This commit is contained in:
parent
ef8557b50a
commit
e34e775f41
6 changed files with 16 additions and 14 deletions
|
@ -610,12 +610,12 @@ function uuidv4() {
|
|||
});
|
||||
}
|
||||
|
||||
function getPlexHeaders() {
|
||||
function getPlexHeaders(clientID) {
|
||||
return {
|
||||
'Accept': 'application/json',
|
||||
'X-Plex-Product': 'Tautulli',
|
||||
'X-Plex-Version': 'Plex OAuth',
|
||||
'X-Plex-Client-Identifier': getLocalStorage('Tautulli_ClientID', uuidv4(), false),
|
||||
'X-Plex-Client-Identifier': clientID ? clientID : getLocalStorage('Tautulli_ClientID', uuidv4(), false),
|
||||
'X-Plex-Platform': p.name,
|
||||
'X-Plex-Platform-Version': p.version,
|
||||
'X-Plex-Model': 'Plex OAuth',
|
||||
|
@ -674,8 +674,8 @@ function closePlexOAuthWindow() {
|
|||
}
|
||||
}
|
||||
|
||||
getPlexOAuthPin = function () {
|
||||
var x_plex_headers = getPlexHeaders();
|
||||
getPlexOAuthPin = function (clientID) {
|
||||
var x_plex_headers = getPlexHeaders(clientID);
|
||||
var deferred = $.Deferred();
|
||||
|
||||
$.ajax({
|
||||
|
@ -695,7 +695,7 @@ getPlexOAuthPin = function () {
|
|||
|
||||
var polling = null;
|
||||
|
||||
function PlexOAuth(success, error, pre) {
|
||||
function PlexOAuth(success, error, pre, clientID) {
|
||||
if (typeof pre === "function") {
|
||||
pre()
|
||||
}
|
||||
|
@ -703,8 +703,8 @@ function PlexOAuth(success, error, pre) {
|
|||
plex_oauth_window = PopupCenter('', 'Plex-OAuth', 600, 700);
|
||||
$(plex_oauth_window.document.body).html(plex_oauth_loader);
|
||||
|
||||
getPlexOAuthPin().then(function (data) {
|
||||
var x_plex_headers = getPlexHeaders();
|
||||
getPlexOAuthPin(clientID).then(function (data) {
|
||||
var x_plex_headers = getPlexHeaders(clientID);
|
||||
const pin = data.pin;
|
||||
const code = data.code;
|
||||
|
||||
|
|
|
@ -973,7 +973,7 @@
|
|||
</div>
|
||||
<p class="help-block">Token for Plex.tv authentication.</p>
|
||||
</div>
|
||||
<input type="hidden" id="pms_uuid" name="pms_uuid" value="${config['pms_uuid']}">
|
||||
<input type="hidden" id="pms_client_id" name="pms_client_id" value="${config['pms_client_id']}">
|
||||
|
||||
<p><input type="button" class="btn btn-bright save-button" value="Save" data-success="Changes saved successfully"></p>
|
||||
|
||||
|
@ -2753,7 +2753,7 @@ $(document).ready(function() {
|
|||
}
|
||||
|
||||
$('#sign-in-plex').click(function() {
|
||||
PlexOAuth(OAuthSuccessCallback, OAuthErrorCallback, OAuthPreFunction);
|
||||
PlexOAuth(OAuthSuccessCallback, OAuthErrorCallback, OAuthPreFunction, $('#pms_client_id').val(uuidv4()).val());
|
||||
});
|
||||
|
||||
// Load database import modal
|
||||
|
|
|
@ -111,7 +111,8 @@
|
|||
Tautulli requires a Plex.tv account. Click the button below to sign in on Plex.tv. You may need to allow popups in your browser.
|
||||
</p>
|
||||
</div>
|
||||
<input type="hidden" class="form-control" name="pms_token" id="pms_token" value="" data-validate="validatePMStoken">
|
||||
<input type="hidden" name="pms_token" id="pms_token" value="" data-validate="validatePMStoken">
|
||||
<input type="hidden" name="pms_client_id" id="pms_client_id" value="${config['pms_client_id']}">
|
||||
<a class="btn btn-dark" id="sign-in-plex" href="#" role="button">Sign In with Plex</a>
|
||||
<span style="margin-left: 10px; display: none;" id="pms-token-status"></span>
|
||||
</div>
|
||||
|
@ -570,7 +571,7 @@ $(document).ready(function() {
|
|||
}
|
||||
|
||||
$('#sign-in-plex').click(function() {
|
||||
PlexOAuth(OAuthSuccessCallback, OAuthErrorCallback, OAuthPreFunction);
|
||||
PlexOAuth(OAuthSuccessCallback, OAuthErrorCallback, OAuthPreFunction, $('#pms_client_id').val(uuidv4()).val());
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -50,6 +50,7 @@ FILENAME = "config.ini"
|
|||
_CONFIG_DEFINITIONS = {
|
||||
'ALLOW_GUEST_ACCESS': (int, 'General', 0),
|
||||
'DATE_FORMAT': (str, 'General', 'YYYY-MM-DD'),
|
||||
'PMS_CLIENT_ID': (str, 'PMS', ''),
|
||||
'PMS_IDENTIFIER': (str, 'PMS', ''),
|
||||
'PMS_IP': (str, 'PMS', '127.0.0.1'),
|
||||
'PMS_IS_CLOUD': (int, 'PMS', 0),
|
||||
|
|
|
@ -55,7 +55,7 @@ class HTTPHandler(object):
|
|||
self.headers = {
|
||||
'X-Plex-Product': plexpy.common.PRODUCT,
|
||||
'X-Plex-Version': plexpy.common.RELEASE,
|
||||
'X-Plex-Client-Identifier': plexpy.CONFIG.PMS_UUID,
|
||||
'X-Plex-Client-Identifier': plexpy.CONFIG.PMS_CLIENT_ID or plexpy.CONFIG.PMS_UUID,
|
||||
'X-Plex-Platform': plexpy.common.PLATFORM,
|
||||
'X-Plex-Platform-Version': plexpy.common.PLATFORM_RELEASE,
|
||||
'X-Plex-Device': '{} {}'.format(plexpy.common.PLATFORM,
|
||||
|
|
|
@ -205,6 +205,7 @@ class WebInterface(object):
|
|||
@requireAuth(member_of("admin"))
|
||||
def welcome(self, **kwargs):
|
||||
config = {
|
||||
"pms_client_id": plexpy.CONFIG.PMS_CLIENT_ID,
|
||||
"pms_identifier": plexpy.CONFIG.PMS_IDENTIFIER,
|
||||
"pms_ip": plexpy.CONFIG.PMS_IP,
|
||||
"pms_port": plexpy.CONFIG.PMS_PORT,
|
||||
|
@ -212,7 +213,6 @@ class WebInterface(object):
|
|||
"pms_ssl": plexpy.CONFIG.PMS_SSL,
|
||||
"pms_is_cloud": plexpy.CONFIG.PMS_IS_CLOUD,
|
||||
"pms_token": plexpy.CONFIG.PMS_TOKEN,
|
||||
"pms_uuid": plexpy.CONFIG.PMS_UUID,
|
||||
"pms_name": plexpy.CONFIG.PMS_NAME,
|
||||
"logging_ignore_interval": plexpy.CONFIG.LOGGING_IGNORE_INTERVAL
|
||||
}
|
||||
|
@ -3168,6 +3168,7 @@ class WebInterface(object):
|
|||
"check_github_interval": plexpy.CONFIG.CHECK_GITHUB_INTERVAL,
|
||||
"interface_list": interface_list,
|
||||
"cache_sizemb": plexpy.CONFIG.CACHE_SIZEMB,
|
||||
"pms_client_id": plexpy.CONFIG.PMS_CLIENT_ID,
|
||||
"pms_identifier": plexpy.CONFIG.PMS_IDENTIFIER,
|
||||
"pms_ip": plexpy.CONFIG.PMS_IP,
|
||||
"pms_logs_folder": plexpy.CONFIG.PMS_LOGS_FOLDER,
|
||||
|
@ -3178,7 +3179,6 @@ class WebInterface(object):
|
|||
"pms_is_cloud": plexpy.CONFIG.PMS_IS_CLOUD,
|
||||
"pms_url": plexpy.CONFIG.PMS_URL,
|
||||
"pms_url_manual": checked(plexpy.CONFIG.PMS_URL_MANUAL),
|
||||
"pms_uuid": plexpy.CONFIG.PMS_UUID,
|
||||
"pms_web_url": plexpy.CONFIG.PMS_WEB_URL,
|
||||
"pms_name": plexpy.CONFIG.PMS_NAME,
|
||||
"pms_update_check_interval": plexpy.CONFIG.PMS_UPDATE_CHECK_INTERVAL,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue