Sessions
The VideoKit object is automatically initialized on application start-up, but in order to communicate with our servers, you will need to start a session using your Video.io API token.
#
Get an API tokenAll Video.io APIs should be authenticated using the Video.io API token. To retrieve your token, login to dashboard.video.io and navigate to Apps → Your App → API TOKEN.
#
Start a sessionAs said, a session should be created before using any other Video.io API that communicates with our servers. What is the right moment to start a session?
- If your app has no login system, the session can be safely started in
Application.onCreate()
- If users login into your app, the session should be bound to the login lifecycle. In other words, you can start a Video.io session whenever you know the user ID.
Sessions are started through the session manager (VideoKit.sessions()
) and require you to pass
the API token and an identifier of the current logged in user. This identifier is extremely
important because performing certain operations on videos require a session that uses the same
identifier with which the video was created for the first time.
As you can see, the start() method returns a Call
object described here.
#
Start a session securelyTo improve security, the session token management should be handled by your backend, following the flow:
- your app communicates with your server, e.g. at login time, asking for a video.io session token
- your server communicates with video.io using the REST API or the Node.js SDK, passing the API token and the user ID and receiving back the user session token.
- your app receives the session token from server, and notifies the VideoKit SDK through the session manager:
In this case no async Call
object is returned - it is your responsibility to check that the session
token is valid and not expired.
#
Scoped sessionsIn addition to token and identifier, the session manager can take an array of strings identifying the user role and permissions. Please check the REST API documentation for a list of scopes and what then mean.
#
Stop a sessionTo clear the current session, simply call stop()
:
#
Check the session stateTo access the current session, simply call get()
. You can also add and remove session listeners,
which are useful in certain cases.