Как использовать SOAP API с кодом входа в систему и сессией

0

У меня есть набор мыльных API, которые могут выполнять такие действия, как логин, выход из системы, keepalive, доступ к другим ресурсам. Чтобы получить доступ к другим ресурсам, я должен передать идентификатор сеанса, который я получил из входа api. Сессия получает тайм-аут в 5 минут. Я смущен тем, как это сделать.

Я использую codeigniter для моего проекта, и я создал одну библиотеку с набором заданных в ней запросов на мыло api.

class Soap_api
{
    function __construct()
    {

        define("UID",     "myuser");
        define("PWD",    "34rf3a45575");
        define("API_ENDPOINT", "http://uat-api.testingsoapapi.in/services/smp");
        define("PRODUCT_CODE", "24");
        $resp = $this->keepAliveLib();
        if($resp['ResponseCode'] == '0')
        {
            define("SessionID",$resp['SessionID']);
        }

    }
    function keepAliveLib()
    {
        $resp = $this->login();
        return $resp;
    }
    function one
    {
     //This function needs the sessionID receieved from login function
     }
    function two
    {
     //This function needs the sessionID receieved from login function
     }

Поэтому, когда доступ к любой из функций этого класса, конструктор вызывает keepAliveLib, который вызывает функцию входа в систему, которая находится в этом классе, и возвращает идентификатор сеанса в конструкторскую функцию и устанавливает ее как глобальную константу sessionID. Так что функция, которую я вызывал будет использовать идентификатор сеанса, который создается как константа.

Является ли это стандартным способом вызова API, которые ретранслируются на сеансах? Функция входа вызывается, когда вызывается функция, и создает другой идентификатор сеанса. В библиотеке есть функция keepAlive которая может использоваться для поддержки сеанса, но вместо этого использования keepAlive, Im регистрируется каждый раз, когда функция в этом доступна.

Что-то не так в этом потоке? Можно ли это сделать другими способами?

Теги:
codeigniter
session
soap

1 ответ

0

хорошо, я, вероятно, не понимаю этого полностью, но будет ли это работать?

    $resp = $this->keepAliveLib();
    if($resp['ResponseCode'] == '0') {

        $this->sessionid = $resp['SessionID']); }

    else { // fail gracefully } 

$this-> sessionid теперь доступен для любого метода в контроллере.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню