阻止 Laravel 中的路由会话(自定义按需会话处理)

2024-03-21

我正在使用 laravel 为我的 Android 应用程序构建 API,并将默认会话驱动程序设置为 REDIS。

我在这里找到一篇好文章http://dor.ky/laravel-prevent-sessions-for-routes-via-a-filter/ http://dor.ky/laravel-prevent-sessions-for-routes-via-a-filter/哪种服务达到目的。

然而,当我点击 url 时,它也会点击 redis 并生成空的密钥。现在我想避免在 redis 中创建空会话密钥。理想情况下它不应该命中 redis 我该怎么做?

我们能否以某种方式自定义 sessios,以便仅针对特定路由生成会话(或禁用特定路由)?

我可以通过具体用例解释更多信息,请告诉我。


在 Laravel 5 中使用中间件真的很容易,我需要任何带有 API 密钥的请求而不需要会话,我只是这样做了:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Session\Middleware\StartSession as BaseStartSession;

class StartSession extends BaseStartSession
{

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if(\Request::has('api_key'))
        {
            \Config::set('session.driver', 'array');
        }
        return parent::handle($request, $next);
    }
}

此外,您还需要扩展 SessionServiceProvider,如下所示:

<?php namespace App\Providers;

use Illuminate\Session\SessionServiceProvider as BaseSessionServiceProvider;

class SessionServiceProvider extends BaseSessionServiceProvider
{
    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        $this->registerSessionManager();

        $this->registerSessionDriver();

        $this->app->singleton('App\Http\Middleware\StartSession');
    }
}

并放置在你的config/app.php under providers:

'App\Providers\SessionServiceProvider',

您还必须在内核文件中更改它:App/Http/Kernel.php, 在里面$middlewareGroups部分更改默认条目,\Illuminate\Session\Middleware\StartSession::class,到你的新班级\App\Http\Middleware\StartSession::class,.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阻止 Laravel 中的路由会话(自定义按需会话处理) 的相关文章

  • PHP 启动:无法加载动态库 php5.4.3/ext/php_ffmpeg.dll 不是有效的 Win32 应用程序

    再会 我尝试在 Windows 7 计算机上安装 dll 文件 php ffmpeg 但不断收到此错误 29 Jan 2013 11 37 00 UTC PHP Warning PHP Startup Unable to load dyna
  • 间歇性 PHP 抽象类错误

    我已经为此奋斗了一段时间 但无法弄清楚 也许其他人也有 或者 Slim PHP Apache 等这里有更深层次的问题 在正常工作几个小时后 我的 Slim 安装将开始给出所有路线均如此 致命错误 类 Slim Collection 包含 1
  • 纯旧 PHP 对象 (POPO) 一词的确切含义是什么?

    我想了解一下波波 我搜索了 popo 发现它代表 Plain Old Php Object 但我不确定 Plain Old Php Object 的确切含义 我想知道什么是 popo 以及在哪里使用它 谢谢 普通旧 在此处插入语言 对象是一
  • Composer 安装要求

    我正在尝试将 Composer 安装到 Laravel 项目中 当我做的时候sudo composer install在项目目录中它显示了两个错误 Problem 1 Installation request for simplesoftw
  • 使用控制器通过 codeigniter 处理返回的自定义 css 和 javascript 文件

    我正在开发一个 php codeigniter 项目 我正在考虑创建一个专门用于处理返回自定义 css 和 javascript 文件的控制器 在之前的项目中 我在视图文件的标头中包含了外部 CSS 和 JS 文件 但它们本质上必须是静态的
  • 当第二个参数包含运算符号时,为什么 ltrim 会删除一个字符? [复制]

    这个问题在这里已经有答案了 If I do ltrim 53 34567 53 ltrim 53 34567 53 ltrim 53 34567 53 I get 4567作为结果而不是34567 这种行为的解释是什么 ltrim 53 3
  • php 检查文件是否存在于外部域中(从子域访问)

    我有一个网站http www reelfilmlocations co uk http www reelfilmlocations co uk 上述网站有一个管理区域 其中上传图像并在 uploads images 目录的子文件夹中创建不同
  • 在 laravel 中禁用特定路由的 csrf

    我有一个支付系统 数据被提交到第三方网站然后被拉回 当数据返回时 它会到达特定的 url 比如 ok 路由 REQUEST transaction 但由于 Laravel 中间件 我遇到了令牌不匹配的情况 第三方支付API无法生成token
  • 如何使用 AJAX/jQuery 显示打印内容?

    所以我试图理解整个 AJAX jQuery 的事情 现在 当我单独运行这个 PHP 脚本时 我必须等待并观察轮子旋转 直到循环完成然后加载 while row mysql fetch array res postcode to storm
  • 如何解决 注意:未定义索引:第 21 行 C:\xampp\htdocs\invmgt\manufactured_goods\change.php 中的 id [重复]

    这个问题在这里已经有答案了 我的 PHP 代码有一个问题 显示 注意 未定义的索引 我确信它非常简单 因为我是初学者 所以我不太清楚到底出了什么问题 所以请帮助我 这是代码
  • 从 PHP 生成渐变颜色

    我想知道如何构建一个给出颜色代码和 显示该颜色的渐变 例如 function generate color int colorindex Generate 10 pale colors of this color 请帮我 迈克尔引用的代码相
  • PHPMailer 验证失败

    当我尝试在工作中使用 Windows Server 2012 上的 PHPMailer 来使用 SMTP 发送报告电子邮件时 出现身份验证失败错误 我在域上使用服务器管理员帐户 我非常确定密码是正确的 检查下面的代码 require PHP
  • 退出 PHP 脚本后终止或停止 MySQL 查询

    我在工作中运行一个统计服务器 由于运行的查询量很大 该服务器有时会变得非常慢 我们的营销团队使用它作为主要统计工具 团队中的某些人有时会在脚本结束之前退出脚本 通过关闭浏览器或选项卡 同时 SQL 查询继续执行 当有人关闭或离开 PHP 脚
  • Microsoft VS Code:当我尝试启动程序时,出现错误“spawn php ENOENT”

    我正在尝试在 Microsoft VS Code 上运行 PHP 代码 当我单击启动时 唯一发生的事情是调试控制台中出现错误 生成 php ENOENT 为了解决这个问题 我将 XDebug 的 dll 文件放入 ext 文件夹中 我将 p
  • Laravel 意外错误“类用户包含 3 个抽象方法...”

    在 Laravel 上编写我的身份验证应用程序时 我遇到了一个以前从未见过的错误 我已经集思广益了近一个小时来解决这个问题的原因 但仍然找不到解决方案 Error User 类包含 3 个抽象方法 因此必须声明为抽象方法或实现其余方法 Il
  • 计算特定产品类别的购物车商品数量

    我试图仅从 WooCommerce 中的特定产品类别获取购物车中的商品数量 我正在为一家酒厂做一个网站 它有酒精和非酒精产品 所有葡萄酒都属于 葡萄酒 主类别或类别 ID 34 其下有许多子类别和产品 对于属于此类别的任何商品 我需要知道此
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • 为什么 LinkedIn v2 Share API 在任何 v2/shares 端点上给出权限不足的错误?

    当我调用任何 v2 LinkedIn 共享 API 端点时 例如https api linkedin com v2 socialActions https api linkedin com v2 socialActions share UR
  • 使用 PHP 将 SVG 图像转换为 PNG

    我正在开发一个网络项目 该项目涉及动态生成的美国地图 根据一组数据为不同的州着色 这个 SVG 文件为我提供了一张很好的美国空白地图 并且很容易更改每个州的颜色 困难在于 IE 浏览器不支持 SVG 因此为了让我使用 svg 提供的便捷语法
  • 一些基本的 PHP 问题 [已关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我只是有一些基本的 php 问题来加深我对学习的理解 但我找不到简单的答案 我有一个 php ajax 应用程序 它生成 mysql

随机推荐

  • *NSFileProtectionComplete* 到底是什么意思?

    我正在看NS文件管理器 https developer apple com library prerelease mac documentation Cocoa Reference Foundation Classes NSFileMana
  • OCaml 中的类型共享 - 类型检查器错误

    编译这个程序时 module type Inc sig type t val inc t gt t end module type Dec sig type t val dec t gt t end module Merger I Inc
  • 如何使用 mysqldump 跳过某些数据库表?

    有没有办法限制 mysqldump 命令中的某些表 例如 我将使用以下语法来转储only table1 and table2 mysqldump u username p database table1 table2 gt database
  • HttpContext.SignInAsync 之后获取当前 HttpRequest 中的 AuthenticationProperties

    我正在使用 ASP net Core MVC 在登录过程中 在 POST 控制器操作中 我将 HttpContext SignInAsync 与包含 JWT 访问令牌的 AuthenticationProperties 结合使用 在同一个
  • 在 Flask-SQLAlchemy 中隔离 py.test 数据库会话

    我正在尝试使用 Flask SQLAlchemy 构建 Flask 应用程序 我使用 pytest 来测试数据库 问题之一似乎是在不同测试之间创建隔离的数据库会话 我编写了一个最小的完整示例来突出问题 请注意test user schema
  • EF4 中的并发 - 如何有条件地创建实体

    我需要能够创建一个新的用户实体only if提供的电子邮件是唯一的 我以前总是通过执行一个简单的操作来处理这个问题if UserSet Any 在我之前AddToUserSet 然而 这不是一个并发解决方案 并且会在重负载下崩溃 我一直在研
  • 在android中渲染epub书?

    我尝试在 android pad 中显示 epub 书 我可以解析html和css 以显示书的内容和格式 也许书包含图片 看来我有两个选择 使用网络视图 编写一个客户视图 以便它可以渲染 html css 这似乎是一个非常复杂的任务 哪个是
  • CGContext 中的 alpha 像素数

    我有一个掩蔽CGContext有两种类型的像素 颜色和 Alpha 不透明和透明像素 如何计算上下文中 alpha 像素的百分比 我没有测试它 但这应该可以解决问题 只需将 ReportAlphaPercent 传递给 CGImageRef
  • Color.red 和 Color.RED 之间的区别

    定义之间的真正区别是什么setXxx Color red and setXxx Color RED 我在网上找到了以下解释 这都是关于命名约定的吗 Java最初定义了一些小写的颜色常量名称 这违反了常量使用大写的命名规则 它们在所有 Jav
  • 捕获子进程输出[重复]

    这个问题在这里已经有答案了 我了解到 在Python中执行命令时 我应该使用子进程 我想要实现的是通过 ffmpeg 对文件进行编码并观察程序输出 直到文件完成 Ffmpeg 将进度记录到 stderr 如果我尝试这样的事情 child s
  • 如何在 PHP 中从 Linkedin 公司 URL 获取公司 ID?

    我的 Linkedin 公司网址如下 http in linkedin com company abb ABB 有限公司的公司 ID 是277579 基本上您还可以通过以下方式联系 ABBhttp www linkedin com comp
  • 如何设置react-select中可以选择的最大项目数?

    我正在使用反应选择中的 CreatableSelect 组件 现在用户可以选择任意数量的项目 但我希望用户选择的项目不超过 5 个 如何限制可以选择的最大选项数
  • twilio 对话跟踪 ID

    我正在使用 twilio 创建一个聊天应用程序 但在跟踪多个用户之间的对话和多个对话时遇到问题 Example 对话 gt 用户 A 和用户 B 对话2 gt 用户A 和用户B 当用户A在对话2中向用户B发送消息时 当我收到用户A发来的短信
  • 如何每 X 分钟运行一次 cronjob?

    我正在 cronjob 中运行 PHP 脚本 我想每 5 分钟发送一次电子邮件 我当前的 crontab cronjob 10 usr bin php mydomain in cromail php gt dev null 2 gt 1 c
  • 将从 URL 输出的 JSON 保存到文件

    如何将 URL 输出的 JSON 保存到文件中 例如 来自 Twitter 搜索 API 此http search twitter com search json q hi http search twitter com search js
  • 来自 .clone() 的空文件输入

    我正在尝试克隆一个文件输入表单 每次我选择一个文件时then单击 添加更多 克隆文件输入 但它已复制输入中选定的文件
  • 信号 11 SIGSEGV 崩溃 Android

    今天我遇到了一个错误 导致我的 Android 应用程序收到 SIGNAL 11 信号 此错误通常是由于 Android 内部存储未经授权的内存区域访问而发生的 一些可能的场景是Web访问 网络通信 服务器图像下载等 我的是浏览器加载 ur
  • AngularJS 选择的空值

    我找不到优雅的设置方式null值与
  • Azure blob 文件下载链接

    我有一个 blob 已存储在 Azure blob 存储中 使用开发模拟器 它全部保存 我可以在 blob 存储的服务器资源管理器中看到它 file mp3 如果重要的话 然后我在我的网站中链接到它 但是当我单击该链接时 我收到了 206
  • 阻止 Laravel 中的路由会话(自定义按需会话处理)

    我正在使用 laravel 为我的 Android 应用程序构建 API 并将默认会话驱动程序设置为 REDIS 我在这里找到一篇好文章http dor ky laravel prevent sessions for routes via