首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用jwt和postman进行laravel 8 ->授权

在使用JWT(JSON Web Tokens)和Postman进行Laravel 8的授权时,你需要遵循以下步骤:

1. 安装和配置JWT

首先,你需要在Laravel项目中安装和配置JWT。你可以使用tymon/jwt-auth包来实现这一点。

安装包

代码语言:javascript
复制
composer require tymon/jwt-auth

发布配置文件

代码语言:javascript
复制
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"

生成密钥

代码语言:javascript
复制
php artisan jwt:secret

配置 config/auth.php

config/auth.php 文件中,配置JWT作为认证驱动:

代码语言:javascript
复制
'guards' => [
    'api' => [
        'driver' => 'jwt',
        'provider' => 'users',
        'hash' => false,
    ],
],

更新User模型

确保你的User模型实现了 Tymon\JWTAuth\Contracts\JWTSubject 接口,并添加必要的方法:

代码语言:javascript
复制
use Tymon\JWTAuth\Contracts\JWTSubject;

class User extends Authenticatable implements JWTSubject
{
    // ...

    public function getJWTIdentifier()
    {
        return $this->getKey();
    }

    public function getJWTCustomClaims()
    {
        return [];
    }
}

2. 创建认证路由和控制器

创建认证控制器

代码语言:javascript
复制
php artisan make:controller AuthController

添加登录方法

AuthController 中添加登录方法:

代码语言:javascript
复制
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Tymon\JWTAuth\Facades\JWTAuth;

class AuthController extends Controller
{
    public function login(Request $request)
    {
        $credentials = $request->only('email', 'password');

        if (!$token = Auth::attempt($credentials)) {
            return response()->json(['error' => 'Unauthorized'], 401);
        }

        return $this->respondWithToken($token);
    }

    protected function respondWithToken($token)
    {
        return response()->json([
            'access_token' => $token,
            'token_type' => 'bearer',
            'expires_in' => Auth::factory()->getTTL() * 60
        ]);
    }
}

添加路由

routes/api.php 中添加认证路由:

代码语言:javascript
复制
use App\Http\Controllers\AuthController;

Route::post('login', [AuthController::class, 'login']);

3. 使用Postman进行测试

登录并获取JWT令牌

  1. 打开Postman并创建一个新的POST请求。
  2. 设置URL为 http://your-app-url/api/login
  3. 在请求体中选择 x-www-form-urlencoded 并添加以下字段:
    • email: 用户的电子邮件地址
    • password: 用户的密码
  4. 发送请求并获取响应中的 access_token

使用JWT令牌访问受保护的路由

  1. 创建一个新的GET请求。
  2. 设置URL为你要访问的受保护路由(例如 http://your-app-url/api/protected-route)。
  3. 在请求头中添加 Authorization 头,并设置值为 Bearer <access_token>,其中 <access_token> 是你在上一步中获取的令牌。
  4. 发送请求并查看响应。

通过以上步骤,你应该能够在Laravel 8中使用JWT和Postman进行授权。确保你的应用程序的安全性,不要在客户端暴露密钥,并使用HTTPS来保护传输中的数据。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PHP怎样使用JWT进行授权验证?

本文目录 概述 JWT的原理是什么? 怎样使用JWT? 客户端怎样回传JWT使用JWT要注意什么?...1.概述 JWT可以取代以往的基于 COOKIE/SESSION 的鉴权体系,是目前最热门跨域鉴权的解决方案,接下来从 JWT 的原理,到 PHP 示例代码,简单说明业务怎样使用 JWT 进行授权验证。...JWT定制了一个标准,实际上就是将合法用户(一般指的是 通过 账号密码验证、短信验证,以及小程序code,或者通过其他验证逻辑 验证为合法的用户)的授权信息,加密起来,然后颁发给客户端。...HS256加密 :生成与验证JWT 使用 HS256 算法生成 JWT,这是一种对称加密,使用同一个密钥串进行加密和解密。...为了减少盗用,JWT 的有效期应该设置得比较短。对于一些比较重要的权限,使用时应该再次对用户进行认证(如通过手机 验证码 再次验证,或者再次输入用户密码进行验证)。

3.3K11

使用Spring SecurityJWT进行身份验证授权(三)

实现身份验证授权接下来,我们需要实现基于JWT的身份验证授权。...最后,我们需要实现JWT请求过滤器。...该类用于配置身份验证授权规则,以及安全过滤器链。我们在这里配置了以下内容:我们允许访问“/authenticate”端点而不需要身份验证。这是我们用于生成JWT令牌的端点。...我们要求对所有其他请求进行身份验证。我们配置了JWT身份验证入口点(jwtAuthenticationEntryPoint)JWT请求过滤器(jwtRequestFilter)。...我们配置了会话管理策略为“STATELESS”,这意味着我们将不使用HTTP会话进行身份验证授权。我们将JWT请求过滤器添加到Spring Security的过滤器链中。

1.8K40
  • Spring Boot 使用 JWT 进行身份权限验证

    适合初学者入门 Spring Security With JWT 的 Demo 这篇文章中说到了要在十一假期期间对代码进行讲解说明,但是,你们懂得,到了十一就一拖再拖,眼看着今天就是十一的尾声了,抽了一下午完成了这部分内容...第一个过滤器主要用于根据用户的用户名密码进行登录验证(用户请求中必须有用户名密码这两个参数),它继承了 UsernamePasswordAuthenticationFilter 并且重写了下面三个方法...Detail : " + exception.getMessage()); } return null; } } 当用户使用 token 对需要权限才能访问的资源进行访问的时候...当用户使用系统返回的 token 信息进行登录的时候 ,会首先经过doFilterInternal()方法,这个方法会从请求的 Header 中取出 token 信息,然后判断 token 信息是否为空以及...如果请求头中有 token 并且 token 的格式正确,则进行解析并判断 token 的有效性,然后会在 Spring Security 全局设置授权信息SecurityContextHolder.getContext

    3.5K70

    如何使用MyJWT对JWT进行破解漏洞测试

    MyJWT MyJWT是一款功能强大的命令行工具,MyJWT专为渗透测试人员、CTF参赛人员编程开发人员设计,可以帮助我们对JSON Web Token(JWT进行修改、签名、注入、破解安全测试等等...功能介绍 将新的JWT拷贝至剪贴板; 用户接口; 带颜色高亮输出; 修改JWT(Header/Payload); 安全性高; RSA/HMAC混淆; 使用密钥对JWT进行签名; 通过暴力破解以猜测密钥;...-h, —add-header key=value user=admin 向JWT Header中添加一个新密钥值,如果密钥已存在,则会替换旧的密钥值。...-p, —add-payload key=value user=admin 向JWT Payload添加一个新的密钥值,如果密钥已存在,则会替换旧的密钥值。...-m, —method text POST 指定发送JWT使用的请求方法。

    3.2K10

    使用 Spring Security 进行基本的 HTTP 认证授权(一)

    简介Spring Security 是一个强大而灵活的安全框架,可以在 Spring 应用程序中提供身份验证授权。...使用 Spring Security 可以轻松实现常见的身份验证授权方案,例如基于角色的访问控制基于资源的访问控制。...在本文中,我们将演示如何使用 Spring Security 实现基本的 HTTP 认证授权。HTTP 认证HTTP 认证是一种基于 HTTP 协议的身份验证机制,用于验证用户的身份。...在实际的应用程序中,应该使用安全的密码加密算法来加密密码。接下来,我们使用 authorizeRequests 方法来配置授权规则。在这个例子中,我们允许任何请求都需要进行身份验证。...最后,我们使用 httpBasic 方法来启用基本认证。现在,我们已经成功配置了基本认证,可以使用用户名密码来访问受保护的资源。

    84750

    使用 Spring Security 进行基本的 HTTP 认证授权(二)

    HTTP 授权HTTP 授权是一种基于 HTTP 协议的授权机制,用于限制用户对资源的访问权限。HTTP 授权使用 HTTP 协议中的 Authorization 头来传递用户凭据授权信息。...Spring Security 提供了多种 HTTP 授权机制,例如基于角色的访问控制基于资源的访问控制。在本文中,我们将演示如何使用基于角色的访问控制。...我们还将一个名为 "admin" 的用户添加到用户存储中,并为该用户分配了 "USER" "ADMIN" 两个角色。接下来,我们使用 authorizeRequests 方法来配置授权规则。...在这个例子中,我们使用 antMatchers 方法来限制只有具有 "ADMIN" 角色的用户才能访问 "/admin/**" 路径下的资源。任何其他请求都需要进行身份验证。...最后,我们使用 httpBasic 方法来启用基本认证。现在,我们已经成功配置了基于角色的访问控制,可以使用不同的用户凭据进行测试。

    52520

    Laravel API 开发推荐阅读清单

    API 文档神器 Swagger 介绍及在 PHP 项目中使用 - API 文档撰写方案 推荐 Laravel API 项目必须使用8 个扩展包 使用 Jwt-Auth 实现 API 用户认证以及无痛刷新访问令牌...实现 Auth 认证 使用 Laravel 的 API 资源功能来构建你的 API 单个 Laravel 项目同时配置不同域名 api.domain(用户端接口) admin.domain(管理员端...功能齐全的 API 请求工具 Laravel API 课程 社区有一门实战课程 《Laravel 教程实战高级 - 构架 API 服务器》 ,主要专注于 App SPA 后端 API 服务器实战开发...本课程涉及的技术话题有: RESTFul 的概念及 Github Api 设计分解; DingoApi 的介绍及安装; PostMan 的介绍及使用; 用户认证 —— 手机注册、登录、退出; 第三方认证...—— 微信登录、JWT使用; 用户信息 —— 获取个人信息、上传图片接口、修改个人信息; 话题接口 —— 发布、修改、删除、列表; 话题回复接口 —— 发布、修改、删除、列表; 权限控制 —— 权限列表

    4.2K70

    通过修改Laravel Auth使用saltpassword进行认证用户详解

    前言 本文主要给大家介绍了通过修改Laravel Auth用saltpassword进行认证用户的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: Laraval自带的用户认证系统...Auth非常强大易用,不过在Laravel的用户认证系统中用户注册、登录、找回密码这些模块中用到密码加密认证算法时使用的都是bcrypt,而很多之前做的项目用户表里都是采用存储salt + password...加密字符串的方式来记录用户的密码的,这就给使用Laravel框架来重构之前的项目带来了很大的阻力,不过最近自己通过在网上找资料、看社区论坛、看源码等方式完成了对Laravel Auth的修改,在这里分享出来希望能对其他人有所帮助...Auth使用,好了做完这些修改后Laravel的Auth在做用户登录验证的时候采用的就是自定义的salt + password的方式了。...注:使用Laravel版本为5.2

    2.9K30

    聊聊常见的服务(接口)认证授权

    下面我们聊聊常见的服务授权方式; Basic Auth Basic Auth使用base64编码把 username:password (注意中间有个半角冒号)加密后放入请求头: 比如账号密码 hei:...因为简单,且几乎是明文的形式传递,总得来说不够安全;且要配合权限啊、授权策略啊要花挺多成本; 看场景使用; Key Auth 这个别看名字起得高大上,其实也就是你先定义一个 KeyName,KeyValue...Postman支持 总结: 跟basic auth 一样,还是不够安全,虽然可以通过添加超复杂的keyValue提高安全性。但记住,只要是固定的key,永远都是不安全的。看场景使用。...Token的类型使用的算法,payload部分就是授权信息,比如用户名啊、哪个服务器,什么时候发的、什么时候失效等等。...的通用性,所以JWT是可以进行跨语言支持; 因为有了payload部分,所以JWT可以在自身存储一些其他业务逻辑所必要的非敏感信息。

    1.4K20

    详解laravel passport OAuth2.0的4种模式

    前提需要用户授权同意. ? laravel用passport搭建OAuth2认证服务 相当于基于laravel搭建OAuth2 Server....隐式授权 code授权的唯一区别是返回的redirect_uri没有code参数: http://dev.blog.com:8000/oauth/authorize?...无认证过程,客户端登录时直接带上资源服务器注册过的账号密码,就像使用同一个账户系统....Cookie 到输出响应,这个 Cookie 包含加密过的JWT,Passport 将使用这个 JWT 来认证来自 JavaScript 应用的 API 请求,现在,你可以发送请求到应用的 API,而不必显示传递访问令牌...其他用法 1 私人令牌 授权方式在用户测试、体验平台提供的认证 API 接口时非常方便 2 scope作用域 更细颗粒度控制api权限 总结 以上所述是小编给大家介绍的laravel passport

    3.6K30

    JSON Web Token(JWT)教程:一个基于LaravelAngularJS的例子

    ---- 使用Laravel 5AngularJS的JSON Web Token示例 (译注:由于对LaravelAngularJS不熟悉,这里的以英文原文为准,同时若发现这里有错误,欢迎随时提出。...我建议进行Laravel开发时使用 Laravel Homestead pre-packaged “box” of Vagrant (注:感觉是通过 Laravel 安装工具安装 Laravel)。...这个例子中,我们将使用 tymon/jwt-auth,一个由Sean Tymon开发的用于在服务端处理token的,barryvdh/laravel-cors,一个由 Barry vd....AngularJS作为前端,依赖Laravel后端身份验证服务器的API调用进行用户身份验证样本数据以及用于提供跨域示例数据的API服务器。...如果不是这样,服务器将使用401未经授权的错误状态代码进行响应。 认证服务 Auth服务负责登录并向后端注册HTTP请求。

    30.6K10
    领券