laravel

Laravel CSRF 保护

跨站点请求伪造(英语:Cross-site request forgery)是一种恶意利用,利用这种手段,代表经过身份验证的用户执行未经授权的命令。值得庆幸的是,Laravel 可以轻松保护您的应用程序免受跨站点请求伪造(CSRF)攻击。 漏洞的解释 如果您不熟悉跨站点请求伪造,我们讨论一个利用此漏洞的示例。假设您的应用程序有一个 /user/email 路由,它接受 POST 请求来更改经过身份验证用户的电子邮件地址。最有可能的情况是,此路由希望 email 输入字段包含用户希望开始使用的电子邮件地址。 没有 CSRF 保护,恶意网站可能会创建一个 HTML 表单,指向您的应用程序 /use...

laravel 自定义中间件实现身份验证

通过Laravel 用户认证我们知道了基于 api 的身份验证,实现方式有Laravel Sanctum API 授权 、 Laravel 使用 Json Web Token(JWT) 等,今天介绍一下自定义中间件实现身份验证 中间件 使用中间件需要提前在app/Http/Kernel.php这里配置,分为全局中间件、中间件、中间件组 全局中间件 全局中间件无需主动调用,系统会自动应用到每次请求。比如:TrimStrings中间件会自动去掉请求参数左右两边的空格;ConvertEmptyStringsToNull中间件会自动把请求参数中的空字符串转为 null。 ConvertEmptyStr...

laravel 以服务提供者的方式使用 elasticsearch

安装 安装elasticsearch官方扩展包 composer require elasticsearch/elasticsearch 以服务提供者的方式使用 elasticsearch 可以参考这篇文章:Laravel 以服务提供者的方式使用第三方扩展包 下面给出关键配置 config/es.php <?php declare(strict_types=1); return [ 'hosts' => explode(',', env('ELASTIC_HOSTS')),//['http://elasticsearch:9200'] 'username' =&...

Laravel 使用 Json Web Token(JWT)

关于 JWT 之前写过 php - Json Web Token(JWT)的使用 go - gin 使用 Json Web Token(JWT) 今天总结下 Laravel 中 JWT 的使用 安装 composer require tymon/jwt-auth #发布配置 php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider" #生成密钥,这将更新您的.env文件,例如JWT_SECRET=foobar php artisan jwt:secret 快速开始 更新你的 ...

Laravel Sanctum API 授权

Laravel Sanctum 为 SPA(单页应用程序)、移动应用程序和基于令牌的、简单的 API 提供轻量级身份验证系统。Sanctum 允许应用程序的每个用户为他们的帐户生成多个 API 令牌。这些令牌可以被授予指定允许令牌执行哪些操作的能力 / 范围。 简单来说,前后端分离的项目,使用 token 验证登陆状态,可以选它;另外,同类型的还有 jwt 比较火 安装 Laravel 9 已经包含了 Laravel Sanctum,所以下面的步骤看看就行了 composer require laravel/sanctum php artisan vendor:publish --prov...

Laravel 表单验证失败跳首页的解决办法

首先,官方不觉得这是一个问题 如果在传统 HTTP 请求期间验证失败,则会生成对先前 URL 的重定向响应。如果传入的请求是 XHR,将将返回包含验证错误信息的 JSON 响应。 https://learnku.com/docs/laravel/9.x/validation/12219#quick-writing-the-validation-logic 问题复现 cuiwei@weideMacBook-Pro ~ % curl -X POST 'http://laravel.cw.net/api/login' \ --header 'Content-Type: application/jso...

laravel 代码提示 - laravel-ide-helper

在开发过程中,可能会遇到有些代码不能跳转,如下图 laravel-ide-helper 可以解决这个问题。 使用 composer require --dev barryvdh/laravel-ide-helper #低版本Laravel 5.5 composer require --dev barryvdh/laravel-ide-helper v2.4.1 php artisan ide-helper:generate php artisan ide-helper:meta #模型注释 composer require --dev doctrine/dbal php artisan ...

Laravel 用户认证

应用的身份认证一般包含两种:web 浏览器认证和API 认证 基于 web 浏览器的身份验证:常见于前后端混合开发的项目,php混合html模版;使用session+cookie完成身份验证。现在很少见了 基于 api 的身份验证:常见于前后端分离的项目,一套api同时给前端,Android,iOS提供服务;使用token完成身份验证。也是当下最流行的开发模式 在其核心,Laravel 的用户认证是由「看守器」和「提供器」。看守器定义如何对每个请求的用户进行身份验证。例如,Laravel 附带了一个 session 守护程序,它使用 session 存储和 cookie 来维护状态。 提供器...

docker-compose 快速部署 Soketi

docker-compose version: '3' # 使用外部网络 # docker network create server_web-network networks: server_web-network: external: true services: docker-soketi: image: 'quay.io/soketi/soketi:1.5.0-16-debian' # environment: # SOKETI_DEBUG: '1' # SOKETI_METRICS_SERVER_PORT: '9601' # ...

Laravel 广播

安装 服务端 付费方案 Pusher Channels Ably 这里不作介绍 开源方案 laravel-websockets 安装请移步 https://www.cuiwei.net/p/1659113677 Soketi 安装请移步 https://www.cuiwei.net/p/1093836635 前端 安装 laravel-echo npm install --save-dev laravel-echo pusher-js 以私人频道为例 场景如下:用户支付完成,前端需要从后端获取支付结果,并展示给用户 基本流程 后端 配置 注册BroadcastServicePro...