返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >Lumen6 /laravel 框架路由请求实现token验证
  • 293
分享到

Lumen6 /laravel 框架路由请求实现token验证

laravelphp 2023-09-02 07:09:48 293人浏览 薄情痞子
摘要

版本 Lumen6.0 中文文档:https://learnku.com/docs/lumen/5.7/cache/2411 实现功能效果 使用缓存存储用户token 从请求头head 中获取用户token 返回指定的认证失败结构体 对指定

版本

Lumen6.0

中文文档:https://learnku.com/docs/lumen/5.7/cache/2411

实现功能效果

使用缓存存储用户token

从请求头head 中获取用户token

返回指定的认证失败结构体

对指定的接口路由做身份验证

 第一步:解除注释

注意: 

在使用 Lumen 的认证功能前,

取消 bootstrap/app.PHP 文件中的 AuthServiceProvider 调用代码的注释。

去掉 bootstrap/app.php 文件中 $app->withFacades() 方法调用的注释。

去掉bootstrap/app.php 文件中 $app->routeMiddleware([
     'auth' => App\Http\Middleware\Authenticate::class,
 ]); 注释

第二步:接口路由验证身份 routes/WEB.php

post('/user/login', 'UserController@login'); //登录$router->group(['middleware' => ['auth']], function () use ($router) {    $router->get('/user/info', 'UserController@user_info'); //获取用户信息});

第三步:修改验证器方法  App\Providers\AuthServiceProvider.php

app['auth']->viaRequest('api', function ($request) {//            if ($request->input('api_token')) {//                return User::where('api_token', $request->input('api_token'))->first();//            }//        });        $this->app['auth']->viaRequest('api', function ($request) {                        //从消息头获取传入的token            $token = $request->headers->get('Authorization');            $a = explode(" ", $token);            if (isset($a[1]) && $a[1]) {                $token = $a[1];            }            //token验证通过返回当前认证用户//            $token = UserToken::where('token',$token)->first();            //从缓存中获取用户id            $user_id = AuthCache::get_token_user_id($token);            if($user_id){                //返回user模型                return User::where('id',$user_id)->first();            }            return null;        });    }}

以上方式是通过缓存中查询token的,此处也可以改成数据库中查询,或者使用Jwt解析

原理就是通过请求接口传输过来的token信息,通过token查询到关联的用户id,然后再查询用户信息,返回整个用户模型,之后就可以使用Auth::user() 拿到用户数据

第四步:查看user model模型下的内容,正常安装后是不需要改动的,这里我继承了一个自己写的BaseModel父类。

ail',//    ];        protected $hidden = [        'passWord',    ];}

第五步:修改认证失败后的,返回结构App/Http/Middleware/Authenticate.php

看一下默认返回结构

修改后返回结构,这里可以自定义,正常情况我们应在项目定义一个全局的返回结构体方法提供使用。

 

auth = $auth;    }        public function handle($request, Closure $next, $guard = null)    {        if ($this->auth->guard($guard)->guest()) {            //这是默认的返回结构//            return response('Unauthorized.', 401);            //修改返回结构            return response()->json([                'code'=>404,                'msg'=>'无效的token',                'data'=>[]            ]);//            Common::response_result(StatusConstants::ERROR_UNAUTHORIZED_TOKEN,'无效的token');        }        //验证通过        return $next($request);    }}

 

来源地址:https://blog.csdn.net/qq_24909089/article/details/130138039

--结束END--

本文标题: Lumen6 /laravel 框架路由请求实现token验证

本文链接: https://lsjlt.com/news/390204.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Lumen6 /laravel 框架路由请求实现token验证
    版本 Lumen6.0 中文文档:https://learnku.com/docs/lumen/5.7/cache/2411 实现功能效果 使用缓存存储用户token 从请求头head 中获取用户token 返回指定的认证失败结构体 对指定...
    99+
    2023-09-02
    laravel php
  • 如何使用Go语言实现路由的请求参数验证
    如何使用Go语言实现路由的请求参数验证在实际的开发中,我们经常需要对接收到的请求参数进行验证,以确保数据的有效性和安全性。使用Go语言编写服务端程序时,通过路由来处理请求是常见的做法。本文将介绍如何使用Go语言实现路由的请求参数验证,并附上...
    99+
    2023-12-17
    Go语言 路由 参数验证
  • vue如何实现登录路由验证
    小编给大家分享一下vue如何实现登录路由验证,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!vue的项目的登录状态如果用vuex状态管理,页面一刷新vuex管理的状态就会消失,这样登录路由验...
    99+
    2024-04-02
  • Yii框架的脉搏:揭秘路由、请求和响应机制
    路由 Yii 的路由机制允许将传入的 URL 映射到特定的控制器和操作。通过解析 URL,Yii 确定请求的目标控制器和操作,并实例化相应的类。 控制器 控制器是处理用户请求的主要类。它决定如何处理请求,并通常从模型类检索数据,然后将数据...
    99+
    2024-04-02
  • android中如何实现Router路由框架
    这篇文章主要为大家展示了“android中如何实现Router路由框架”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“android中如何实现Router路由框架”这篇文章吧。Router路由框架...
    99+
    2023-05-30
    android router
  • tp6+jwt实现token生成及验证,tp+vue请求接口header中加入token报跨域错误解决
    生成、验证token 原文:TP6 JWT Token 生成 控制器使用 中间件使用 使用compose安装jwt类 (在cmd中切换至tp项目文件夹中运行一下命令,运行成功后会在vendor目录中生...
    99+
    2023-09-25
    vue.js php 前端
  • Go语言中如何实现路由的请求限流
    Go语言中如何实现路由的请求限流随着Web应用的发展和用户量的增加,对服务器的请求量也会随之增加。为了保证服务器的稳定性和性能,我们需要对请求进行限流。限流可以有效地控制请求的数量,避免服务器崩溃或性能下降。在Go语言中,可以使用gomod...
    99+
    2023-12-17
    Go语言 路由 请求限流
  • .NET6开发TodoList应用之实现接口请求验证
    目录需求目标原理与思路实现验证一点扩展总结参考资料需求 在响应请求处理的过程中,我们经常需要对请求参数的合法性进行校验,如果参数不合法,将不继续进行业务逻辑的处理。我们当然可以将每个...
    99+
    2024-04-02
  • 如何在Go语言中实现路由的请求缓存
    如何在Go语言中实现路由的请求缓存在Web开发中,路由是一个非常重要的概念,用于将客户端请求映射到相应的处理程序。在高并发的情况下,频繁地处理请求可能会导致服务器性能下降。为了减轻服务器的负载和提高响应速度,可以对路由的请求进行缓存。在Go...
    99+
    2023-12-17
    Go语言 路由 请求缓存
  • python实现web应用框架之增加动态路由
    目录路由添加正则表达式有什么用?如何定义动态路由注册动态路由匹配动态路由框架运行效果展示总结今天我们将继续对该框架进行路由添加正则表达式。 本篇文章所依赖的python环境为: 路...
    99+
    2023-05-19
    python实现web应用框架 python增加动态路由 python动态路由
  • HTTP 请求中的 PHP Shell 命令:Laravel 框架的最佳实践是什么?
    随着 Web 应用程序的发展,HTTP 请求中嵌入 PHP Shell 命令的情况也越来越普遍。这种操作的主要目的是执行系统命令或者操作文件,但同时也存在着安全隐患。本文将介绍 Laravel 框架中的最佳实践,以确保应用程序的安全性。 ...
    99+
    2023-07-02
    laravel shell http
  • vue中怎么实现一个路由拦截器和请求拦截器
    本篇文章给大家分享的是有关vue中怎么实现一个路由拦截器和请求拦截器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。路由拦截器已路由为导向rou...
    99+
    2024-04-02
  • PHP中使用路由组件实现复杂的请求分发逻辑
    【前言】在Web应用程序开发中,路由是一个非常重要的组件。它负责将不同的请求分发给不同的处理器来处理。在PHP中,使用路由组件能够实现复杂的请求分发逻辑。本文将通过具体的代码示例来介绍如何在PHP中使用路由组件实现复杂的请求分发逻辑。【什么...
    99+
    2023-10-21
    路由组件 复杂 请求分发
  • PHP中运用路由中间件实现请求的过滤与处理
    随着互联网技术的快速发展和应用的普及,网站和应用的开发也变得愈发复杂。为了提高开发效率和代码的可维护性,开发者们通过引入中间件的概念来处理请求的过滤与处理。在PHP中,使用路由中间件可以轻松实现请求的过滤与处理,并且能够高度定制、灵活应对各...
    99+
    2023-10-21
    PHP 路由中间件 请求过滤
  • PHP中使用路由中间件实现请求的过滤与处理
    随着Web应用的发展,处理请求的方式也在不断演进。传统的方式是将所有的请求通过一个单一的处理入口进行处理,这样不仅增加了入口文件的复杂度,也不便于对不同类型的请求进行细粒度的处理。为了解决这个问题,引入了路由中间件的概念。什么是路由中间件?...
    99+
    2023-10-21
    路由中间件 请求过滤 处理编程
  • ElementUI中如如何实现表单验证、数据绑定、路由跳转
    这篇文章主要介绍ElementUI中如如何实现表单验证、数据绑定、路由跳转,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.新建表单组件el-form.vue<template...
    99+
    2024-04-02
  • SpringMVC框架中如何使用Filter实现请求日志打印
    这篇文章主要为大家展示了“SpringMVC框架中如何使用Filter实现请求日志打印”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SpringMVC框架中如何使用Filter实现请求日志打印”...
    99+
    2023-06-25
  • SpringMVC框架中使用Filter实现请求日志打印方式
    目录查找资料后确定两种技术方案具体实现总结一下之前利用HttpServletRequest.getInputStream()和RequestWrapper实现了请求的requestB...
    99+
    2024-04-02
  • golang怎么使用Gin框架实现短信验证码功能
    golang怎么使用Gin框架实现短信验证码功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用json配置文件// 配置文件 "...
    99+
    2023-06-20
  • Node.js中Express框架使用axios同步请求(async+await)实现方法
    axios一般是作为异步请求使用的,但是某种特殊情况下需要同步请求,如何实现呢? 首先定义一个方法syncAxios let axios = require('axios'); e...
    99+
    2023-05-15
    Node.js Express axios 同步请求 async await
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作