1.2.1 • Published 11 months ago

fmihel-ajax-plugin-session v1.2.1

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

ajax-plugin-session v1.2.1

session plugin for fmihel/ajax solution see and install https://github.com/fmihel/ajax

1. Install plugin 2. Simple use 3. API

Install plugin

$ npm i fmihel-ajax-plugin-session
$ composer require fmihel/ajax-plugin-session 

run script for remove js files from vendor path

$ cd ./vendor/fmihel/ajax-plugin-session && ./composer-after-install.sh && cd ../../../

Simple use

file struct

path
  |-server
  |   |-session
  |   |    |-MySession.php
  |   |-mod.php
  |-index.php
  |
  |-client
      |-index.js
      |-session.js

client/index.js

import ajax from 'fmihel-ajax';
import session from './session.js';

session.autorize({ 
    login:'1',
    pass:'1',
})
    .then(()=>{
        return ajax::send({
            to:'server/mod',
            data:{ msg: 'send msg to server',any_num:10,arr:[1,32,4,2]},
        })
    })
    .then((data)=>{
        console.info(data);
        return session.logout();
    })
    .catch((e)=>{
        console.error(e);
    });

client/session.js

import ajax from 'fmihel-ajax';
import Session from 'fmihel-ajax-plugin-session';

export default ajax.addPlugin(new Session(ajax));

server/session/MySession.php

<?php

use fmihel\ajax\plughin\session\SessionDefault;

class MySession extends SessionDefault{

    function __construct()
    {
        $this->users = [
            ['id' => '1', 'login' => '1', 'pass' => '1', 'sid' => '3992', 'rights' => ['admin']],
            ['id' => '2', 'login' => '2', 'pass' => '2', 'sid' => '3993', 'rights' => ['manager']],
        ];
    }

}

index.php

<?php
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/server/session/MySession.php';

use fmihel\ajax\ajax;
use fmihel\ajax\plugin\session\SessionPlugin;

if (ajax::enabled()) {
    try {

        ajax::init([
            'plugins' => [
                new SessionPlugin('MySession'),
            ]
        ]);
        require_once ajax::module();
        ajax::done();

    } catch (\Exception $e) {
        ajax::error($e);
    };

};

server/mod.php

<?php
    use fmihel\ajax;
    error_log(print_r(ajax::$data,true));
    ajax::out('hi, from server');
    

API

server/php

class SessionPlugin |method|result|param|notes| |----|----|----|----| |__construct(string $sessionClass,array $params)|||create session plugin and connect to session handler | |||$sessionClass|name of session handler, seeiSessioninterface | |||$params|array of addition params: <br>exclude- list of path that will be ignored by the plugin, path may be asstringorfunction($path)` - return true if path need ignored | |||||

client/javascript

class Session |method|result|notes| |----|----|----| |autorize({login,pass,sid})|promise|try autorize with login and pass or sid(session id)| |logout()|promise|break current session| |enabled()|bool|session status| |on(event,callback)|function|event listener. event = 'autorize' or 'logout',return function for off listen| ||||

1.2.0

11 months ago

1.1.0

11 months ago

1.0.5

11 months ago

1.2.1

11 months ago

1.0.4

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago