Laravel 使用 Passport 进行API认证

Laravel Passport:API认证的瑞士军刀 Laravel Passport是一个功能强大且易于使用的API认证解决方案。通过本文的介绍,你应该对Passport有了更深入的理解,包括其特性、安装配置以及使用方法。记住,合理利用Passport,可以显著提高API的安全性和用户体验。本文详细介绍了Laravel Passport认证系统的基本概念、优势以及具体的实现步骤。通过具体的代码示例和操作说明,希望能够帮助读者更好地理解和运用Laravel Passport,为API提供安全的认证机制。 阅读详情

曾经使用过Dingo + JWT来做API系统,工作起来还好,就是配置比较麻烦。现在使用官方扩展包来尝试下。

首先安装 Laravel/Passport,这里不再重复,直接参考官方文档。

https://laravel.com/docs/5.6/passport

在文档里有一步是

php artisan passport:client

这一步会产生两个client id,其中client id 2可以不用走完整的OAuth2流程,直接用用户名和密码就能认证。

请求形式如下:

$response = $http->post('http://localhost:9001/oauth/token', [
    'form_params' => [
        'grant_type' => 'password',
        'client_id' => '2',
        'client_secret' => 'QLA0JWeQB1zWBTDrzhody6o5OTmjHDfsx2vNiOfI',
        'username' => 'name@email.com',
        'password' => 'abcd1234',
        'scope' => '',
    ],
]);

这段代码的意思是:

1,请求地址是 http://localhost:9001/oauth/token ,这个域名就是你自己的域名,/oauth/token是passport已经设置好了的。

2,grant_type 要设为password,表明直接用帐号来验证

3,client_id 和client_secret 这两就是系统里生成的client信息。在oauth_clients表中可以查到,默认生成的第2个就是password形式。

几乎不用做什么额外配置就可以完成认证了。

Postman中如下:



补充一点:

laravel默认在router/api.php里定义了一条路由,使用auth:api中间件来检查是否已经认证。

如果直接访问这个路由,比如  http://127.0.0.1/api/user, 没有认证的情况下,它会显示登录页的信息,(之前做了make:auth,没做这一操作的返回结果尚不清楚),显然这个对api客户端来说不友好,应该返回json格式的错误信息才对。

这里只要在客户端的请求头中加上" X-Requested-With = XMLHttpRequest " 这个请求头,就会返回正常的json格式消息。


这种认证形式适合js页面,或是移动端程序来进行用户认证,简单明了,不用走oauth2的全部流程。

对于第三方授权的应用场景还是走完整流程比较好,不要因小失大。


忘了个事,对于client id 和secret的信息,可能不希望放到前端去,那么可以自定义个路由,做个中转。

Route::get('/auth/password', function (\Illuminate\Http\Request $request){
    $http = new \GuzzleHttp\Client();

    $response = $http->post('http://localhost:9001/oauth/token', [
        'form_params' => [
            'grant_type' => 'password',
            'client_id' => '2',
            'client_secret' => 'QLA0JWeQB1zWBTDrzhody6o5OTmjHDfsx2vNiOfI',
            'username' => $request->input('username'),
            'password' => $request->input('password'),
            'scope' => '',
        ],
    ]);

    return json_decode((string)$response->getBody(), true);
});

这里的 client_id client_secret也可以写到.env里去。这样对用户client信息就是不可见的。不用前端保存client信息。


-完-


别再只盯着时序了!聊聊SDC里那些容易被忽略的‘配角’命令:工作条件、线载模型与面积约束 本文深入探讨了SDC(设计约束)中常被忽视的关键命令,包括set_operating_conditions、set_wire_load_model和set_max_area。这些‘配角’命令在芯片设计中扮演着至关重要的角色,影响时序收敛、功耗和面积优化。文章通过实际案例和最佳实践,揭示了如何正确配置工作条件、选择线载模型以及动态调整面积约束,以提升设计质量和效率。 阅读详情

相关推荐

离散数学期末考试试卷(两套)-熟悉题型

3.设集合A={a,b,c,d}上有自反关系R={,,,,},对称关系S={,,,}。6.设集合A={1,2,3},B={u,v,w},C={a,b,c},f是集合A到集合B上的映射,g是集合B到集合C上的映射,f={, , },g={},则复合函数g。5. 设集合A={a,b,c,d,e},下列选项中哪一个集合不是A的划分( )。

muse3159546973的博客 6956

Laravel Passport身份认证写法

在laravel中, 可以用Passport扩展来实现Oauth2.0的接口身份验证。 可以让用户在第三方客户端登录账号。 但是大多数时候只需要用户直接在我们的客户端上登录即可, 这时候需要适合用Passport里面的Personal Access Tokens方式来实现。 下面记录下安装和使用过程。 在laravel项目根目录分别运行下面3行代码 //用composer安装passport composer require laravel/passport //生成依赖的数据表 php artisan

mengliwang的博客 1208

告别手绘!用Aseprite+Unity Tilemap,从AI生成到2D游戏地图的保姆级搭建流程

本文详细介绍了如何利用Aseprite和Unity Tilemap从AI生成素材到搭建2D游戏地图的完整流程。涵盖AI生成素材的预处理、图层管理、动画制作,以及Unity中的Tilemap系统配置和性能优化技巧,帮助开发者高效创建像素风游戏地图。

weixin_29015483的博客 583

laravel 的passport Oauth 认证登录请求 的 oauth_token 重置

使用API登录认证是需要获取访问令牌,方法为: 参数: grant_type —— 密码模式固定为password; client_id —— 通过passport:client创建的客户端id; client_secret —— 通过passport:client创建的客户端secret; username —— 登录的用户名,数据库中任意用户邮箱; passwor...

weixin_33862041的博客 1318

Spring AI RAG 生产级实战:从 0 构建企业智能知识库系统

Spring AI🎯统一的 API 抽象:屏蔽不同 AI 服务商的差异🎯开箱即用的集成:支持主流大模型和向量数据库🎯Spring 生态融合:与 Spring Boot、Spring Data 无缝集成🎯企业级特性:事务管理、监控、安全等RAG 架构:检索 + 增强 + 生成,解决 LLM 局限性Spring AI:统一的 API 抽象,简化 AI 应用开发向量数据库:pgvector 适合中小规模,Milvus 适合大规模文档处理:加载 → 分块 → 向量化 → 存储检索优化。

一起修行,不孤单。这里有编程语言、开发工具、学习方法论和踩坑笔记。用简单的话说复杂的事,陪你从小白到进阶。周更干货,欢迎一起成长! 405

华为硬件逻辑岗笔试题(一)

积少成多,集腋成裘,坚持!!! 目录 1. 进制转换 2. 状态机和编码方式 3. 存储器的分类 4. Verilog语法中的操作符 5. 对组合逻辑的认识 6. 对时序逻辑的认识 7. 竞争冒险的认识 8. 基本时序逻辑电路 9. 建立时间和保持时间 10. 同步时序电路 11. 组合逻辑和时序逻辑判断 13. 基本总线的理解 14.加法器 15.FPGA开发工具 1. 进制转换 1、十进制46.25对应的二进制表达式为( )。 A 101110.11...

qq_42235129的博客 1万+

php artisan passport,API 认证解决方案:Laravel Passport

API 认证解决方案:Laravel Passport由 学院君 创建于2年前, 最后更新于 1年前版本号 #127631 views4 likes0 collects简介Laravel 通过传统的登录表单已经让用户认证变得很简单,但是 API 认证怎么实现?API 通常使用令牌(token)进行认证并且在请求之间不维护会话(Session)状态。Laravel 官方扩展包 Laravel Pas...

weixin_39807954的博客 702

手把手教你 RT-DETR 添加注意力机制 | 一次性添加 20+ 种!

手把手教你 RT-DETR 添加注意力机制 | 一次性添加 20+ 种!

Coding... 2852

Laravel中使用passport实现用户注册

安装passport composer require laravel/passport ‘7.5.0’ 注:我安装的时候没有一开始没有加版本号,然后就报了如下错: Installation failed, reverting ./composer.json to its original content. 加了版本号就好了,但我后来过了段时间尝试的时候,发现不加也可以,加了反而报错,23333 执行迁移 php artisan migrate 这一步我也不知道该怎么说了 php artisa

xiaosheng 1281

高可用架构设计——多节点OpenClaw集群部署与负载均衡(2026企业级)

本文介绍了企业级OpenClaw高可用集群架构设计,重点阐述了多节点部署与负载均衡方案。架构采用分层设计,包括表现层、应用层、数据层和基础设施层,确保99.99%的可用性目标。详细配置了主节点、工作节点和存储节点规格,提供Kubernetes集群部署脚本示例,实现自动化的容器编排管理。通过硬件冗余、故障隔离和弹性扩展等可靠性原则,构建能够应对各种故障场景的稳定AI助手系统。

博客 421

CloudCompare&PCL 体元累加法(树冠体积计算)

文章目录

dayuhaitang1的博客 1553

laravel Passport 使用要点记录

安装 composer require laravel/passport 运行迁移 php artisan migrate 创建访问令牌 [个人访问] 客户端和 [密码授权] 客户端 php artisan passport:install 单独创建 密码授权 客户端 php artisan passport:client --password 单独创建 个人访问 客户端 ph...

z_ruitao的博客 702

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Laravel Passport快速实现API认证

Laravel Passport快速实现API认证 安装拓展 passport 首先为什么要使用passport 拓展? 思考:API 认证如果是网页端使用session 会话保持就可以简单做到,但是如果是app端无会话保持的情况下,就只能想其他办法了,其中一个就是:api 令牌。 如何解决这个问题呢? 思考:用户通过 API 登录时,会生成令牌并将其发送给用户,该用户可用于身份验证,也就是app端提交请求时,头信息里必须添加api token, 如下:$accessToken 为用户登录后生成的令牌 ‘

菜鸟没翅膀 795

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Laravel Passport API 认证使用小结

Laravel Passport API 认证使用小结 八月 4, 2017发布在Laravel 看到Laravel-China 社区常有人问 Laravel Passport 用于密码验证方式来获取 Token 的问题,刚好我最近一个 API 项目使用 LaravelDingo Api+Passport,也是使用 Oauth2 的'grant_type' => '...

weixin_30414305的博客 359

Laravel PassPort API 认证之基本实现

前言 最近在搞一个小小的项目,练练手,需要前后端分离,所以后端就得提供api接口,那么接口就得需要认证! 所以选择了PassPort来做认证! 参考博客文档 如果我有写的不好的地方,大家可以参看这些博客文档,文中有些文字来源于这些博客以及文档 官方文档: https://learnku.com/docs/laravel/6.x/passport/5152#issuing-access-token...

HKer_YM的博客 1677

Laravel 集成 Passport 服务做 API 认证

1、首先安装laravel(安装方式可以去官网或者laravel学院查看文档这里我写出安装5.4的命令) 通过composer安装指定版本 composer create-project --prefer-dist laravel/laravel blog "5.4*" 2、配置数据库 在目录结构下的.evn文件下配置 3.集成passport进项目 composer ...

xhzss123的博客 615

Laravel认证API:使用Passport实现OAuth2.0认证

你是否正在为Laravel应用构建安全的API认证系统?是否需要让移动应用或第三方服务安全访问你的API?本文将带你一步步实现基于OAuth2.0的完整认证方案,无需复杂配置即可快速上线专业级认证系统。 ## 环境准备与依赖检查 在开始前,请确保你的开发环境满足以下要求: - PHP >= 8.2(项目要求见[composer.json](https://gitcode.com/GitHub_...

gitblog_00601的博客 362

php passport security,详解laravel安装使用Passport(Api认证)

Laravel通过传统的登录表单已经让用户认证变得很简单,但是API怎么办?API通常使用token进行认证并且在请求之间不维护session状态。Laravel使用Laravel Passport让API认证变得轻而易举,Passport基于Alex Bilbie维护的League OAuth2 server,可以在数分钟内为Laravel应用提供完整的OAuth2服务器实现。中文文档安装com...

weixin_42569429的博客 281

php passport security,使用 Laravel Passport 处理 API 认证

image我们将会学习使用 Laravel 的 Passport API OAuth 来创建一个验证系统。第一步. 安装 Laravel我们需要用以下命令来创建一个最新的 Laravel 应用,所以请打开终端执行:laravel new auth第二步. 安装 Laravel Passport 包Laravel Passport 可以在几分钟内为你的应用实现一个完整的 OAuth2 服务器。com...

weixin_39958019的博客 152

php artisan passport,使用 Laravel Passport 处理 API 认证

文章转发自专业的Laravel开发者社区,原始链接:learnku.com/laravel/t/2…我们将会学习使用 Laravel 的 Passport API OAuth 来创建一个验证系统。第一步. 安装Laravel我们需要用以下命令来创建一个最新的 Laravel 应用,所以请打开终端执行:laravel new auth复制代码第二步. 安装 Laravel Passport包La...

weixin_39578197的博客 193

laravel Passport - 创建 REST API 用户认证以及Dingo/Api v2.0+Passport实现api认证

第一部分: 安装passport 使⽤ Composer 依赖包管理器安装 Passport : composer require laravel/passport 接下来,将 Passport 的服务提供者注册到配置⽂件 config/app.php 的providers 数组中:(5.6后不用加 ) Laravel\Passport\Passport...

a847035977的博客 190

laravel 安装使用 Passport (Api认证)

Laravel通过传统的登录表单已经让用户认证变得很简单,但是API怎么办?API通常使用token进行认证并且在请求之间不维护session状态。Laravel使用Laravel Passport让API认证变得轻而易举,Passport基于Alex Bilbie维护的League OAuth2 server,可以在数分钟内为Laravel应用提供完整的OAuth2服务器实现。 中文文档 ...

学习-记录笔记-积累 8762

Laravel使用Passport来创建API用户认证

本文来自pilishen.com----原文链接; 欢迎作客我们的php&Laravel学习群:109256050 比如说你要给你的手机APP用户创建API,使用的是你已有的Laravel系统里的数据库,尤其是用户数据。现在我们来看一下,这里使用的是Laravel Passport组件。 我们将要创建三个api,分别是: Login API Register API Details ...

weixin_34072458的博客 252

auth返回的access_token 如何使用_使用 Laravel Passport 为你的 REST API 增加用户认证功能...

在本教程中,我们将了解如何在 Laravel 应用中使用 laravel passport 认证。 我们还将使用 Laravel Passport 认证 构建一个简单的产品 (创建, 查询, 更新和删除 )。Laravel 已经提供了传统的登录表单身份验证,但是如果你想使用 APIs 呢?APIs 使用令牌来验证用户,因为它们不使用会话。当用户通过 API 登录时,会生成令牌并将其发送给用户,该用...

weixin_34738099的博客 1360

Laravel Passport Api认证

基本配置基本安装配置主要参照官方文档,具体不详细说,列出关键代码段config/auth.php'guards' => [ 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ], 'providers' =&gt...

水墨青花的博客 2816
上一篇: Laravel 中处理OPTIONS请求的简单办法
下一篇: 使用Laravel/Passport 进行API认证二
HOOLOO
博客等级 码龄25年 58粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HOOLOO

技术分享,回馈社会,建设祖国。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值