文档章节

laravel 5.5 api接口开发:JWT安装+实现API token 认证

o
 osc_zoa3moe9
发布于 2019/12/07 15:35
字数 383
阅读 41
收藏 0

精选30+云产品,助力企业轻松上云!>>>

JWT全称是 JSON Web Token 的缩写,是一个非常轻巧的规范,这个规范允许我们使用 JWT 在用户和服务器之间传递安全可靠的信息。

第一步安装:

/* jwt-auth 是 Laravel 和 lumen 的 JWT 组件,首先来安装一下,Laravel 5.5 的适配版本为 1.0.0-rc.2 */

composer require tymon/jwt-auth:1.0.0-rc.2

 

第二步配置:

 

1、安装完成后,我们需要设置一下 JWT 的 secret,这个 secret 很重要,用于最后的签名,更换这个 secret 会导致之前生成的所有 token 无效。

php artisan jwt:secret

2、修改 config/auth.php,将 api guard 的 driver 改为 jwt

4、在config/api.php添加内容

'auth' => [
    'jwt' => Dingo\Api\Auth\Provider\JWT::class
]

 

第三步:测试

 

user模型需要继承 Tymon\JWTAuth\Contracts\JWTSubject 接口,并实现接口的两个方法 getJWTIdentifier () 和 getJWTCustomClaims ()。

<?php

namespace App\Models;

use Tymon\JWTAuth\Contracts\JWTSubject;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Auth;
use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable implements JWTSubject
.
.
.
    // Rest omitted for brevity

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

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

 

 

使用 php artisan tinker 测试生成token:

 

1、$user=\App\User::first()


2、\Auth::guard('api')->fromUser($user)->setTTL(60*24*365) 

可以通过 setTTL(60*24*365) 设置为有效期一年,单位为一分钟,默认有效期为60分钟。

  

  

 postman测试:

 

 编辑:routes/api.php (需要先安装dingo\api,见上篇)

$api = app('Dingo\Api\Routing\Router');
$api->version('v1', [
    'namespace' => 'App\Http\Controllers\Api'
], function($api) {
  
    $api->group(['middleware'=>'api.auth'],function ($api)
    {
        $api->get('user',function()
        {
          /*验证token成功获取用户信息*/
           echo Auth::guard('api')->user();
        });
    });
});

  

 

 

o
粉丝 1
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
3. laravel 5.5 多子域名 + dingo + jwt 简单环境搭建

环境介绍   laravel 5.5.* + php 7.2 + mysql 5.7.27 1. 创建 laravel 项目 (自行 配置一下域名 如果 不会 请参考 laravel 的第一篇文章 )   composer create-project --prefer-dist lar...

osc_m201eczg
2019/09/05
8
0
[教程] Laravel 中使用 JWT 认证的 Restful API

文章转发自专业的Laravel开发者社区,原始链接:learnku.com/laravel/t/2… 在此文章中,我们将学习如何使用 JWT 身份验证在 Laravel 中构建 restful API 。 JWT 代表 JSON Web Tokens 。 我...

Summer__
2019/09/19
0
0
使用Laravel集成JWT认证开发RestfulApi

在使用跨平台应用程序时, API 是一个非常不错的选择。 除了网站,您的产品可能还有 Android 和 iOS 应用程序。 在这种情况下, API 也是同样出色的,因为您可以在不更改任何后端代码的情况下...

八重樱
05/09
0
0
laravel使用JWT做API认证

最近项目做API认证,最终技术选型决定使用JWT,项目框架使用的是laravel,laravel使用JWT有比较方便使用的开源包:jwt-auth。<a href="http://www.jqhtml.com/19859.html" target="_blank">......

osc_zegihifx
2018/11/16
4
0
Laravel 5.5 使用 Jwt-Auth 实现 API 用户认证以及刷新访问令牌

最近在做一个公司的项目,前端使用 Vue.js,后端使用 Laravel 构建 Api 服务,用户认证的包本来是想用 Laravel Passport 的,但是感觉有点麻烦,于是使用了 jwt-auth 。 安装 jwt-auth 最新版...

osc_qbaf64b6
2018/03/16
5
0

没有更多内容

加载失败,请刷新页面

加载更多

python每日经典算法题5(基础题)+1(中难题)

  现在,越来越多的公司面试以及考验面试对算法要求都提高了一个层次,从现在,我讲每日抽出时间进行5+1算法题讲解,5是指基础题,1是指1道中等偏难。希望能够让大家熟练掌握python的语法结...

osc_9we1w99u
16分钟前
0
0
vue中通过路由跳转的三种方式

router-view 实现路由内容的地方,引入组件时写到需要引入的地方 需要注意的是,使用vue-router控制路由则必须router-view作为容器。 通过路由跳转的三种方式 1、router-link 【实现跳转最简...

dragon_tech
16分钟前
19
0
秃顶顶少年团-冲刺总结

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homewor......

osc_ed2py9ot
18分钟前
9
0
往事不堪回首

开局一张图,内容全靠编 从12年大学毕业到如今,兜兜转转,依然在码工,码农,码代码的路上徘徊着,从最初的用asp.net写站点,写内部的CRM,内部管理系统,内部的XXX,很难想象内部的系统居然...

osc_nvkeo9cj
20分钟前
10
0
一款很好用的前端公、农历转换插件

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, ......

osc_qo89by3k
20分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部