overtrue/laravel-stateless-session

一个轻量级中间件,使API路由能够支持会话。

2.0.0 2022-02-14 06:17 UTC

This package is auto-updated.

Last update: 2024-09-14 12:17:31 UTC


README

一个轻量级中间件,使API路由能够支持会话。

Sponsor me

安装

$ composer require overtrue/laravel-stateless-session -vvv

用法

将中间件(\Overtrue\LaravelStatelessSession\Http\Middleware\SetSessionFromHeaders)添加到API路由组。

protected $middlewareGroups = [
        //...
        'api' => [
            \Overtrue\LaravelStatelessSession\Http\Middleware\SetSessionFromHeaders::class,
            \Illuminate\Session\Middleware\StartSession::class,
            'throttle:api',
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],
    ];

响应头

此中间件会将会话ID设置为响应头中的名为'x-session',如果您想更新头名称,可以在config/session.php中添加header

config/session.php

    'header' => 'x-session',

请求头

API请求必须在头中设置最后的会话ID。以axios为例,我们需要监听API响应,从响应头中检索会话ID并将其存储在本地存储中,然后检索它并将其添加到请求头中。

axios.interceptors.request.use(function (config) {
    config.headers['x-session'] = 'session id from your localstorage';
    return config;
  }, function (error) {
    return Promise.reject(error);
  });

// Store the response session id
axios.interceptors.response.use(function (response) {
    if (response.headers['x-session']) {
        // store session id to localstorage
    }
    return response;
  }, function (error) {
    return Promise.reject(error);
  });

贡献

您可以通过以下三种方式之一进行贡献

  1. 使用问题跟踪器提交错误报告。
  2. 问题跟踪器上回答问题或修复错误。
  3. 贡献新功能或更新wiki。

代码贡献流程并不非常正式。您只需确保遵循PSR-0、PSR-1和PSR-2编码指南。任何新的代码贡献都必须附有相应的单元测试(如有适用)。

由JetBrains支持的项目

非常感谢JetBrains慷慨提供许可证,使我能够致力于这个和其他开源项目。

PHP 扩展包开发

想知道如何从零开始构建PHP扩展包吗?

请关注我的实战课程,我将在该课程中分享一些扩展开发经验 —— 《PHP 扩展包实战教程 - 从入门到发布》

许可

MIT