# Authentication (*Authentication*) ## Overview ### Available Operations * [GetTokenDetails](#gettokendetails) - Get Token Details * [PostUsersSignInData](#postuserssignindata) - Get User Sign In Data ## GetTokenDetails Get the User data from the provided X-Plex-Token ### Example Usage ```go package main import( "context" "github.com/LukeHagar/plexgo/models/components" "github.com/LukeHagar/plexgo" "github.com/LukeHagar/plexgo/models/operations" "log" ) func main() { ctx := context.Background() s := plexgo.New( plexgo.WithAccepts(components.AcceptsApplicationXML), plexgo.WithClientIdentifier("abc123"), plexgo.WithProduct("Plex for Roku"), plexgo.WithVersion("2.4.1"), plexgo.WithPlatform("Roku"), plexgo.WithPlatformVersion("4.3 build 1057"), plexgo.WithDevice("Roku 3"), plexgo.WithModel("4200X"), plexgo.WithDeviceVendor("Roku"), plexgo.WithDeviceName("Living Room TV"), plexgo.WithMarketplace("googlePlay"), plexgo.WithSecurity(""), ) res, err := s.Authentication.GetTokenDetails(ctx, operations.GetTokenDetailsRequest{}) if err != nil { log.Fatal(err) } if res.UserPlexAccount != nil { // handle response } } ``` ### Parameters | Parameter | Type | Required | Description | | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | | `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | | `request` | [operations.GetTokenDetailsRequest](../../models/operations/gettokendetailsrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | ### Response **[*operations.GetTokenDetailsResponse](../../models/operations/gettokendetailsresponse.md), error** ### Errors | Error Type | Status Code | Content Type | | ------------------------------------- | ------------------------------------- | ------------------------------------- | | sdkerrors.GetTokenDetailsBadRequest | 400 | application/json | | sdkerrors.GetTokenDetailsUnauthorized | 401 | application/json | | sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## PostUsersSignInData Sign in user with username and password and return user data with Plex authentication token ### Example Usage ```go package main import( "context" "github.com/LukeHagar/plexgo/models/components" "github.com/LukeHagar/plexgo" "github.com/LukeHagar/plexgo/models/operations" "log" ) func main() { ctx := context.Background() s := plexgo.New( plexgo.WithAccepts(components.AcceptsApplicationXML), plexgo.WithClientIdentifier("3381b62b-9ab7-4e37-827b-203e9809eb58"), plexgo.WithProduct("Plex for Roku"), plexgo.WithVersion("2.4.1"), plexgo.WithPlatform("Roku"), plexgo.WithPlatformVersion("4.3 build 1057"), plexgo.WithDevice("Roku 3"), plexgo.WithModel("4200X"), plexgo.WithDeviceVendor("Roku"), plexgo.WithDeviceName("Living Room TV"), plexgo.WithMarketplace("googlePlay"), ) res, err := s.Authentication.PostUsersSignInData(ctx, operations.PostUsersSignInDataRequest{ RequestBody: &operations.PostUsersSignInDataRequestBody{ Login: "username@email.com", Password: "password123", VerificationCode: plexgo.Pointer("123456"), }, }) if err != nil { log.Fatal(err) } if res.UserPlexAccount != nil { // handle response } } ``` ### Parameters | Parameter | Type | Required | Description | | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | | `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | | `request` | [operations.PostUsersSignInDataRequest](../../models/operations/postuserssignindatarequest.md) | :heavy_check_mark: | The request object to use for the request. | | `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | ### Response **[*operations.PostUsersSignInDataResponse](../../models/operations/postuserssignindataresponse.md), error** ### Errors | Error Type | Status Code | Content Type | | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | | sdkerrors.PostUsersSignInDataBadRequest | 400 | application/json | | sdkerrors.PostUsersSignInDataUnauthorized | 401 | application/json | | sdkerrors.SDKError | 4XX, 5XX | \*/\* |