11 KiB
Authentication
(authentication)
Overview
API Calls regarding authentication for Plex Media Server
Available Operations
- getSourceConnectionInformation - Get Source Connection Information
- getTokenDetails - Get Token Details
- getTransientToken - Get a Transient Token
- postUsersSignInData - Get User Sign In Data
getSourceConnectionInformation
If a caller requires connection details and a transient token for a source that is known to the server, for example a cloud media provider or shared PMS, then this endpoint can be called. This endpoint is only accessible with either an admin token or a valid transient token generated from an admin token. Note: requires Plex Media Server >= 1.15.4.
Example Usage
declare(strict_types=1);
require 'vendor/autoload.php';
use LukeHagar\Plex_API;
$sdk = Plex_API\PlexAPI::builder()
->setSecurity(
'<YOUR_API_KEY_HERE>'
)
->build();
$response = $sdk->authentication->getSourceConnectionInformation(
source: 'server://client-identifier'
);
if ($response->statusCode === 200) {
// handle response
}
Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
source |
string | ✔️ | The source identifier with an included prefix. | server://client-identifier |
Response
?Operations\GetSourceConnectionInformationResponse
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| Errors\GetSourceConnectionInformationBadRequest | 400 | application/json |
| Errors\GetSourceConnectionInformationUnauthorized | 401 | application/json |
| Errors\SDKException | 4XX, 5XX | */* |
getTokenDetails
Get the User data from the provided X-Plex-Token
Example Usage
declare(strict_types=1);
require 'vendor/autoload.php';
use LukeHagar\Plex_API;
$sdk = Plex_API\PlexAPI::builder()
->setSecurity(
'<YOUR_API_KEY_HERE>'
)
->build();
$response = $sdk->authentication->getTokenDetails(
);
if ($response->userPlexAccount !== null) {
// handle response
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
$serverURL |
string | ➖ | An optional server URL to use. |
Response
?Operations\GetTokenDetailsResponse
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| Errors\GetTokenDetailsBadRequest | 400 | application/json |
| Errors\GetTokenDetailsUnauthorized | 401 | application/json |
| Errors\SDKException | 4XX, 5XX | */* |
getTransientToken
This endpoint provides the caller with a temporary token with the same access level as the caller's token. These tokens are valid for up to 48 hours and are destroyed if the server instance is restarted.
Example Usage
declare(strict_types=1);
require 'vendor/autoload.php';
use LukeHagar\Plex_API;
use LukeHagar\Plex_API\Models\Operations;
$sdk = Plex_API\PlexAPI::builder()
->setSecurity(
'<YOUR_API_KEY_HERE>'
)
->build();
$response = $sdk->authentication->getTransientToken(
type: Operations\GetTransientTokenQueryParamType::Delegation,
scope: Operations\Scope::All
);
if ($response->statusCode === 200) {
// handle response
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
type |
Operations\GetTransientTokenQueryParamType | ✔️ | delegation - This is the only supported type parameter. |
scope |
Operations\Scope | ✔️ | all - This is the only supported scope parameter. |
Response
?Operations\GetTransientTokenResponse
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| Errors\GetTransientTokenBadRequest | 400 | application/json |
| Errors\GetTransientTokenUnauthorized | 401 | application/json |
| Errors\SDKException | 4XX, 5XX | */* |
postUsersSignInData
Sign in user with username and password and return user data with Plex authentication token
Example Usage
declare(strict_types=1);
require 'vendor/autoload.php';
use LukeHagar\Plex_API;
use LukeHagar\Plex_API\Models\Operations;
$sdk = Plex_API\PlexAPI::builder()->build();
$request = new Operations\PostUsersSignInDataRequest(
clientID: '3381b62b-9ab7-4e37-827b-203e9809eb58',
clientName: 'Plex for Roku',
deviceNickname: 'Roku 3',
clientVersion: '2.4.1',
platform: 'Roku',
requestBody: new Operations\PostUsersSignInDataRequestBody(
login: 'username@email.com',
password: 'password123',
verificationCode: '123456',
),
);
$response = $sdk->authentication->postUsersSignInData(
request: $request
);
if ($response->userPlexAccount !== null) {
// handle response
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
$request |
Operations\PostUsersSignInDataRequest | ✔️ | The request object to use for the request. |
$serverURL |
string | ➖ | An optional server URL to use. |
Response
?Operations\PostUsersSignInDataResponse
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| Errors\PostUsersSignInDataBadRequest | 400 | application/json |
| Errors\PostUsersSignInDataUnauthorized | 401 | application/json |
| Errors\SDKException | 4XX, 5XX | */* |