itcolima / siitec-api-client
此包最新版本(v0.1.86)没有可用的许可信息。
PHP ITColima SIITEC API 客户端
v0.1.86
2024-08-21 16:57 UTC
Requires
- francerz/http: ^0.3
- francerz/json-tools: ^0.1.0
- francerz/oauth2-client: ^0.3
- itcolima/siitec-api-core: ^0.1
- psr/http-client: ^1.0
Requires (Dev)
- phpunit/phpunit: ^8.5
- dev-master
- v0.1.86
- v0.1.85
- v0.1.84
- v0.1.83
- v0.1.82
- v0.1.81
- v0.1.80
- v0.1.79
- v0.1.78
- v0.1.77
- v0.1.76
- v0.1.75
- v0.1.74
- v0.1.73
- v0.1.72
- v0.1.71
- v0.1.70
- v0.1.69
- v0.1.68
- v0.1.67
- v0.1.66
- v0.1.65
- v0.1.64
- v0.1.63
- v0.1.62
- v0.1.61
- v0.1.61-rc3
- v0.1.61-rc2
- v0.1.61-rc1
- v0.1.60
- v0.1.59
- v0.1.58
- v0.1.57
- v0.1.56
- v0.1.55
- v0.1.54
- v0.1.53
- v0.1.52
- v0.1.51
- v0.1.50
- v0.1.49
- v0.1.48
- v0.1.47
- v0.1.46
- v0.1.45
- v0.1.44
- v0.1.43
- v0.1.42
- v0.1.41
- v0.1.40
- v0.1.39
- v0.1.38
- v0.1.37
- v0.1.36
- v0.1.35
- v0.1.34
- v0.1.33
- v0.1.32
- v0.1.31
- v0.1.30
- v0.1.29
- v0.1.28
- v0.1.27
- v0.1.26
- v0.1.25
- v0.1.24
- v0.1.23
- v0.1.22
- v0.1.21
- v0.1.20
- v0.1.19
- v0.1.18
- v0.1.17
- v0.1.16
- v0.1.15
- v0.1.14
- v0.1.13
- v0.1.12
- v0.1.11
- v0.1.10
- v0.1.9
- v0.1.8
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1
- dev-oauth2_v0.3.0
This package is auto-updated.
Last update: 2024-09-21 17:11:27 UTC
README
安装
可以使用以下命令通过 composer 安装此包:
composer require itcolima/siitec-api-client
初始化
通过类 ITColima\SiitecApi\SiitecApi
初始化 SIITEC API。
use ITColima\SiitecApi\SiitecApi; // Carga manual de las variables de entorno putenv('SIITEC_API_CLIENT_ID', '<client_id>'); putenv('SIITEC_API_CLIENT_SECRET', '<client_secret>'); $siitecApi = new SiitecApi();
自动加载环境变量
如果使用可以加载
.env
文件的框架或库,SIITEC API 可以自动加载环境变量。在文件中应包含以下内容:# =================================== # SIITEC API SETTINGS # =================================== SIITEC_API_CLIENT_ID = '<client_id>' SIITEC_API_CLIENT_SECRET = '<client_secret>'
注意
<client_id>
和<client_secret>
参数的值由科利马理工学院计算中心提供。
登录
SIITEC API 库的一个特殊功能是允许访问每个用户的资源,通过登录来识别用户。
SIITEC API 的登录使用 OAuth 2.0 授权框架进行,该框架允许使用访问令牌(Access Token)获取受保护资源的访问权限,并允许持续操作。
这些登录过程需要在客户端(应用)和 SIITEC 服务器之间进行复杂的 HTTP 请求交互和交换。该复杂的机制可以通过库中的函数简化,允许用户更多地关注功能而非结构。
登录功能实现
use ITColima\SiitecApi\SiitecApi; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; class OAuth2Controller { /** * Recibe la solicitud del cliente para iniciar proceso de inicio de sesión. * * Ruta: GET /oauth2[/] */ public function indexGet(): ResponseInterface { $siitecApi = new SiitecApi(); if ($api->isLoggedIn()) { return SiitecApi::redirectTo(SiitecApi::siteUrl()); } $response = $siitecApi->login( SiitecApi::siteUrl('/oauth2/login_handler'), SiitecApi::siteUrl('/oauth2/logout') ); return $response; } /** * Recibe la respuesta del servidor de autorización con el código de * autorización o error, según corresponda el caso. * * Ruta: GET /oauth2/callback[/] */ public function callbackGet(ServerRequestInterface $request): ResponseInterface { $siitecApi = new SiitecApi(); $redirUri = $siitecApi->handleLogin($request); return SiitecApi::redirectTo($redirUri); } /** * Destruye la sesión y hace la solicitud para cancelar la sesión activa del * usuario en SIITEC. * * Ruta: GET /logout[/] */ public function logoutGet(ServerRequestInterface $request): ResponseInterface { $siitecApi = new SiitecApi(); $response = $siitecApi->handleLogout($request); session_destroy(); return SiitecApi::emitResponse($response); } }
注意
实现方式可能因使用的框架和开发技术而异。
调试
默认情况下,API 有一些初始化地址,这些地址可以修改以进行调试和在本地环境中执行。
# ===================================== # SIITEC API DEBUGGING # ===================================== SIITEC_HOME = 'https://siitec.colima.tecnm.mx' SIITEC_API = 'https://siitec.colima.tecnm.mx/api/index.php'
特定环境变量
作为替代,可以使用特定环境变量进行认证机制,尽管这仅适用于特定调试,不建议广泛使用。
# ===================================== # SIITEC API DEBUGGING # ===================================== SIITEC_API_AUTHORIZE_ENDPOINT = 'https://siitec.colima.tecnm.mx/index.php/oauth2/authorize' SIITEC_API_TOKEN_ENDPOINT = 'https://siitec.colima.tecnm.mx/index.php/oauth2/token' SIITEC_API_RESOURCES_ENDPOINT = 'https://siitec.colima.tecnm.mx/api/index.php'