我是使用 Laravel 5.4 + Dingo Api + passport/jwt 两个验证方式

目前需要用到 passport 的 client_credentials

获取 token成功之后,如果需要验证 token的有效,需要在

  1. app\Http\Kernel.php$routeMiddleware 中 添加一个
//客户端证书发放令牌验证中间件
'client_credentials' => \App\Http\Middleware\CheckClientCredentials::class,

如:

protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'jwt.auth' => 'Tymon\JWTAuth\Middleware\GetUserFromToken',
'jwt.refresh' => \Tymon\JWTAuth\Middleware\RefreshToken::class,
'jwt.generalize.auth' => \App\Http\Middleware\GeneralizeAuth::class,
'cors' => \Barryvdh\Cors\HandleCors::class,
//客户端证书发放令牌验证中间件
'client_credentials' => \Laravel\Passport\Http\Middleware\CheckClientCredentials::class,
];
  1. 然后在路由中需要验证的中间件数组中,添加 client_credentials 就可以了。

如:

<?php
use Illuminate\Http\Request;
$api = app('Dingo\Api\Routing\Router'); $api->version('v1', function ($api){
$api->group([
"prefix"=>"test",
'middleware' => [
'client_credentials', //client_credentials 类型验证的中间件
'cors'
],
'namespace' => 'App\Api\Test\Controllers',
], function ($api) { $api->get('test','TestController@test');
}); });

Laravel Passport Key path oauth-public.key does not exist or is not readable

You do not mention your installation steps. Presume you did the following:

composer require laravel/passport

Register the service provider inside config/app.php

Laravel\Passport\PassportServiceProvider::class,

Run the migrations

php artisan migrate

only run passport migrate

php artisan migrate --path=vendor/laravel/passport/database/migrations

Lastly generate the keys using

php artisan passport:install

Reference Laravel Passport Key path oauth-public.key does not exist or is not readable


参考:

  1. [ Laravel 5.4 文档 ] 安全 —— API认证(Passport)
  2. Laravel 的 API 认证系统 Passport
  3. Grant Type client_credentials Authentication fails 处理好client_credentials的验证问题
  4. API Authentication (Passport) 原来官网文档已经有如何验证部分的案例啦

    laravel passport client_credentials的更多相关文章

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

      第一部分: 安装passport 使⽤ Composer 依赖包管理器安装 Passport : composer require laravel/passport 接下来,将 Passport 的服 ...

    2. laravel passport加密jwt格式的access_token中的sub(user_id)字段

      在很多需求我们不希望别人知道用户在我们表中的 user_id :但是又想用数据库的自增 id 功能:一般时候在取出用户后加密 user_id 加密即可:但是总有那么几个不经意间就可能把我们的 user ...

    3. Laravel Passport认证-多表、多字段解决方案

      Laravel Passport认证-多表.多字段解决方案 2018年08月19日 09:31:01 醉卧码场君莫笑 阅读数:1632   1. 概述 API 通常使用令牌(token)进行认证并且在 ...

    4. laravel Passport - Dingo/Api v2.0+Passport 实现 api 认证

      第一部分: 安装passport 使⽤ Composer 依赖包管理器安装 Passport : composer require laravel/passport 接下来,将 Passport 的服 ...

    5. Laravel Passport API 认证使用小结

      Laravel Passport API 认证使用小结 八月 4, 2017 发布在 Laravel 看到Laravel-China 社区常有人问 Laravel Passport 用于密码验证方式来 ...

    6. Laravel Passport token过期后判断refresh_token是否过期

      需求:前后端分离状态下,登录失效(token过期)后,前端需要知道下一步是跳转到登录页面还是使用refresh_token刷新token. 这就需要后端根据是否可以刷新token(refresh_to ...

    7. [ Laravel 5.3 文档 ] 安全 ―― API认证(Passport)保障安全性。

      1.简介 Laravel通过传统的登录表单已经让用户认证变得很简单,但是API怎么办?API通常使用token进行认证并且在请求之间不维护session状态.Laravel使用LaravelPassp ...

    8. 【laravel】passport的scope作用域

      1.根据作用域生成token $user->createToken($request->name,['test1'])->accessToken; 2.注册中间件 'scopes' ...

    9. Laravel 5.4建站06--API 认证系统 Passport

      介绍 在 Laravel 中,实现基于传统表单的登陆和授权已经非常简单,但是如何满足 API 场景下的授权需求呢?在 API 场景里通常通过令牌来实现用户授权,而非维护请求之间的 Session 状态 ...

    随机推荐

    1. 微信小程序の微信js

      一.Javascript简介 二.nodejs中的jscript nodejs表示谷歌基于v8引擎的一门后端语言, ECMA表示ECMA262标准的基本js,native表示nodejs本身的一些包, ...

    2. windows10 注销 锁定

      锁定,暂时离开电脑时使用. 跑程序,下载内容(注意有时要修改一些软件的设置)继续进行. 锁定电脑,这时就不要关机. 注销快于重启. 一个账号 后台跑程序 https://zhidao.baidu.co ...

    3. 小程序入坑(一)---如何引入iconfont 字体图标

      最近一直忙于日常任务,其实是懒癌又犯了..........不过因为自己的“懒癌”,“不思进取”给自己挖了不少坑. 一,小程序工具的安装 打开简易小程序的官网https://mp.weixin.qq.c ...

    4. Java 基础 - 基本类型 & 包装类型

      基本数据类型和包装类的区别 定义不同.包装类属于对象,基本数据类型不是 声明和使用方式不同.包装类使用new初始化,有些集合类的定义不能使用基本数据类型,例如 ArrayList<Integer ...

    5. java-逻辑处理

      类名是ItemDAO package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.s ...

    6. 【Dart学习】-- Dart之泛型

      一,概述  Dart是一种可选的类型语言.Dart中的集合默认是异构的.换句话说,单个Dart集合可以托管各种类型的值.但是,可以使Dart集合保持同质值.泛型的概念可以用来实现同样的目的. 泛型的使 ...

    7. XSS的原理分析与解剖(第二篇)

      0×01 前言: 上节(http://www.freebuf.com/articles/web/40520.html)已经说明了xss的原理及不同环境的构造方法.本期来说说XSS的分类及挖掘方法. 当 ...

    8. source insight和vim同时使用

      https://blog.csdn.net/wangn222/article/details/72721993 1.Source Insight中,Options->Custom Command ...

    9. python类的实例方法、静态方法和类方法区别及其应用场景

      https://blog.csdn.net/helloxiaozhe/article/details/79940321 普通实例方法,第一个参数需要是self,它表示一个具体的实例本身. 如果用了st ...

    10. Hyperledger:常见加密算法分类列表

      算法原理查询:http://mathworld.wolfram.com   加密散列函数 (消息摘要算法,消息认证码,MD算法) Keyed-hash message authentication c ...