okta/SessionsClient.py (32 lines of code) (raw):

from okta.framework.ApiClient import ApiClient from okta.framework.Utils import Utils from okta.models.session.Credentials import Credentials from okta.models.session.Session import Session class SessionsClient(ApiClient): def __init__(self, *args, **kwargs): kwargs['pathname'] = '/api/v1/sessions' ApiClient.__init__(self, *args, **kwargs) # CRUD def create_session(self, username, password, additional_fields=None): """Create a session :param username: the user's username :type username: str :param password: the user's password :type password: str :param additional_fields: additional fields that will be included in the response :type additional_fields: str :rtype: Session """ creds = Credentials() creds.username = username creds.password = password params = {'additionalFields': additional_fields} response = ApiClient.post_path(self, '/', creds, params=params) return Utils.deserialize(response.text, Session) def create_session_with_cookie_token(self, username, password): """Create a session that contains a cookie token :param username: the user's username :type username: str :param password: the user's password :type password: str :rtype: Session """ return self.create_session(username, password, 'cookieToken') def create_session_with_cookie_token_url(self, username, password): """Create a session that contains a cookie token url :param username: the user's username :type username: str :param password: the user's password :type password: str :rtype: Session """ return self.create_session(username, password, 'cookieTokenUrl') def create_session_by_session_token(self, session_token, additional_fields=None): """Create a session using a session token :param session_token: a token that can be exchanged for a session :type session_token: str :param additional_fields: additional fields that will be included in the response :type additional_fields: str :rtype: Session """ data = {'sessionToken': session_token} params = {'additionalFields': additional_fields} response = ApiClient.post_path(self, '/', data, params=params) return Utils.deserialize(response.text, Session) def validate_session(self, id): """Validate a session :param id: the target session id :rtype: Session """ response = ApiClient.get_path(self, '/{0}'.format(id)) return Utils.deserialize(response.text, Session) def extend_session(self, id): """Extend a session's lifespan :param id: the target session id :rtype: Session """ response = ApiClient.put_path(self, '/{0}'.format(id), None) return Utils.deserialize(response.text, Session) def clear_session(self, id): """Terminate a session :param id: the target session id :rtype: Session """ ApiClient.delete_path(self, '/{0}'.format(id))