Creates an encrypted token that is used to establish an individual WebSocket connection to a room. The token is valid for one minute, and a connection (session) established with the token is valid for the specified duration.
Encryption keys are owned by Amazon IVS Chat and never used directly by your application.
See also: AWS API Documentation
See ‘aws help’ for descriptions of global parameters.
create-chat-token
[--attributes <value>]
[--capabilities <value>]
--room-identifier <value>
[--session-duration-in-minutes <value>]
--user-id <value>
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
--attributes
(map)
Application-provided attributes to encode into the token and attach to a chat session. Map keys and values can contain UTF-8 encoded text. The maximum length of this field is 1 KB total.
key -> (string)
value -> (string)
Shorthand Syntax:
KeyName1=string,KeyName2=string
JSON Syntax:
{"string": "string"
...}
--capabilities
(list)
Set of capabilities that the user is allowed to perform in the room. Default: None (the capability to view messages is implicitly included in all requests).
(string)
Syntax:
"string" "string" ...
Where valid values are:
SEND_MESSAGE
DISCONNECT_USER
DELETE_MESSAGE
--room-identifier
(string)
Identifier of the room that the client is trying to access. Currently this must be an ARN.
--session-duration-in-minutes
(integer)
Session duration (in minutes), after which the session expires. Default: 60 (1 hour).
--user-id
(string)
Application-provided ID that uniquely identifies the user associated with this token. This can be any UTF-8 encoded text.
--cli-input-json
| --cli-input-yaml
(string)
Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton
. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml
.
--generate-cli-skeleton
(string)
Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input
, prints a sample input JSON that can be used as an argument for --cli-input-json
. Similarly, if provided yaml-input
it will print a sample input YAML that can be used with --cli-input-yaml
. If provided with the value output
, it validates the command inputs and returns a sample output JSON for that command.
See ‘aws help’ for descriptions of global parameters.
To create a chat token
The following create-chat-token
example creates an encrypted chat token that is used to establish an individual WebSocket connection to a room. The token is valid for one minute, and a connection (session) established with the token is valid for the specified duration.
aws ivschat create-chat-token \
--roomIdentifier "arn:aws:ivschat:us-west-2:12345689012:room/g1H2I3j4k5L6", \
--userId" "11231234" \
--capabilities "SEND_MESSAGE", \
--sessionDurationInMinutes" 30
Output:
{
"token": "ACEGmnoq#1rstu2...BDFH3vxwy!4hlm!#5",
"sessionExpirationTime": "2022-03-16T04:44:09+00:00"
"state": "CREATING",
"tokenExpirationTime": "2022-03-16T03:45:09+00:00"
}
For more information, see Step 3: Authenticate and Authorize Chat Clients in the Amazon Interactive Video Service User Guide.
sessionExpirationTime -> (timestamp)
Time after which an end user’s session is no longer valid. This is an ISO 8601 timestamp; note that this is returned as a string .
token -> (string)
The issued client token, encrypted.
tokenExpirationTime -> (timestamp)
Time after which the token is no longer valid and cannot be used to connect to a room. This is an ISO 8601 timestamp; note that this is returned as a string .