mirror of
https://github.com/Karaka-Management/jsOMS.git
synced 2026-01-10 17:38:41 +00:00
110 lines
1.9 KiB
JavaScript
110 lines
1.9 KiB
JavaScript
import { Request } from '../Message/Request/Request.js';
|
|
import { RequestMethod } from '../Message/Request/RequestMethod.js';
|
|
import { RequestType } from '../Message/Request/RequestType.js';
|
|
|
|
/**
|
|
* @typedef {import('../Account/Account.js').Account} Account
|
|
*/
|
|
|
|
/**
|
|
* Auth class.
|
|
*
|
|
* @copyright Dennis Eichhorn
|
|
* @license OMS License 2.2
|
|
* @version 1.0.0
|
|
* @since 1.0.0
|
|
*/
|
|
export class Auth
|
|
{
|
|
/**
|
|
* @constructor
|
|
*
|
|
* @param {string} uri Login uri
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
constructor (uri)
|
|
{
|
|
/** @type {Account} account */
|
|
this.account = null;
|
|
|
|
/** @type {string} uri */
|
|
this.uri = uri;
|
|
};
|
|
|
|
/**
|
|
* Set account for authentication.
|
|
*
|
|
* @param {Account} account Account
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
setAccount (account)
|
|
{
|
|
this.account = account;
|
|
};
|
|
|
|
/**
|
|
* Get account.
|
|
*
|
|
* @return {Account}
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
getAccount ()
|
|
{
|
|
return this.account;
|
|
};
|
|
|
|
/**
|
|
* Login account.
|
|
*
|
|
* @return {void}
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
login ()
|
|
{
|
|
const authRequest = new Request();
|
|
|
|
authRequest.setUri(this.uri);
|
|
authRequest.setMethod(RequestMethod.POST);
|
|
authRequest.setResponseType(RequestType.JSON);
|
|
authRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
|
|
|
/** @type {XMLHttpRequest} xhr */
|
|
authRequest.setSuccess(function (xhr)
|
|
{
|
|
this.loginResult(xhr);
|
|
});
|
|
|
|
authRequest.send();
|
|
};
|
|
|
|
/**
|
|
* Logout account.
|
|
*
|
|
* @return {void}
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
logout ()
|
|
{
|
|
location.reload();
|
|
};
|
|
|
|
/**
|
|
* Handle login result.
|
|
*
|
|
* @param {XMLHttpRequest} xhr Request
|
|
*
|
|
* @return {void}
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
loginResult (xhr)
|
|
{
|
|
location.reload();
|
|
};
|
|
};
|