riftfox/wechat-check-session

校验服务器所保存的登录态 session_key 是否有效。为了保持 session_key 私密性,接口不明文传输 session_key,而是通过校验登录态签名完成。

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/riftfox/wechat-check-session

dev-main 2025-07-18 10:54 UTC

This package is auto-updated.

Last update: 2025-10-18 11:29:06 UTC


README

微信小程序校验登录态 SDK,用于校验 session_key 是否有效。

功能特性

  • 封装微信小程序 auth.checkSession 接口
  • 支持 PSR-7/PSR-17/PSR-18 标准
  • 提供统一的校验结果数据结构
  • 支持 HMAC-SHA256 签名方法

安装

composer require riftfox/wechat-check-session

使用方法

use Riftfox\Wechat\CheckSession\CheckSessionProvider;
use Riftfox\Wechat\CheckSession\Session;
use Riftfox\Wechat\Application\Application;
use Riftfox\Wechat\SessionSignature\SignatureFactoryInterface;
use GuzzleHttp\Client;
use Nyholm\Psr7\Factory\Psr17Factory;

// 初始化依赖
$client = new Client();
$requestFactory = new Psr17Factory();
$uriFactory = new Psr17Factory();
$resultFactory = new ResultFactory();
$exceptionFactory = new ExceptionFactory();

// 创建 provider 实例
$provider = new CheckSessionProvider(
    $client,
    $requestFactory,
    $uriFactory,
    $resultFactory,
    $exceptionFactory
);

// 创建应用实例
$application = new Application('appid', 'secret', ApplicationInterface::TYPE_MINIAPP);

// 创建会话信息
$session = new Session();
$session->setSessionKey('your-session-key');

try {
    // 校验 session_key
    $result = $provider->checkSession($application, $session,SignatureFactoryInterface::METHOD_HMAC_SHA256);

    // 处理结果
    if ($result->isValid()) {
        echo "session_key 有效";
    } else {
        echo "session_key 已过期";
    }
} catch (Exception $e) {
    echo "请求失败:" . $e->getMessage();
}

接口说明

CheckSessionProviderInterface

interface CheckSessionProviderInterface 
{
    // 接口 URL 常量
    const CHECK_SESSION_URL = "https://api.weixin.qq.com/wxa/checksession";
    
    /**
     * 校验登录态是否有效
     *
     * @param ApplicationInterface $application 应用实例
     * @param SessionInterface $session 会话信息
     * @return ResultInterface 校验结果
     * @throws Exception 请求失败时抛出异常
     */
    public function checkSession(ApplicationInterface $application, SessionInterface $session, string $sigMethod=SignatureFactoryInterface::METHOD_HMAC_SHA256): ResultInterface;
}

SessionInterface

会话信息接口,包含 session_key 等会话相关信息。

ResultInterface

校验结果接口,用于判断 session_key 是否有效。

相关文档

License

MIT