我是使用 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. MyBatis笔记二:配置

      MyBatis笔记二:配置 1.全局配置 1.properites 这个配置主要是引入我们的 properites 配置文件的: <properties resource="db.pr ...

    2. 关于导出Excel出现异常的解决办法。:System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

      异常信息为:System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} ...

    3. 结对编程收获——UI真的没有那么简单

      结对编程收获——UI真的没有那么简单                                                      詹元成 初看作业要求,心里还有一点欣喜,不就是做一个UI ...

    4. DQN的第一次尝试 -- 软工结对编程第一次作业

      DQN的第一次尝试 在本篇博客中将为大家形象地介绍一下我对DQN的理解,以及我和我的队友如何利用DQN进行黄金点游戏.最后我会总结一下基于我在游戏中看到的结果,得到的dqn使用的注意事项和这次游戏中我 ...

    5. 【记录】Http 状态码整理

      Http状态码: 1XX:信息,服务器收到请求,需要请求者继续执行操作 2XX:成功,操作被成功接收并处理 3XX:重定向,需要进一步的操作以完成请求 4XX:客户端错误,请求包含语法错误或无法完成请 ...

    6. kubernetes报错

      错误信息:执行yaml文件后,服务在运行,但是提示命令找不到 原因:没有环境,相当于只有一个快捷方式 环境目录为/usr/local/bin 解决办法:将/etc/ansible/bin下的文件都拷贝 ...

    7. 2.java中c#中statc 静态调用不同之处、c#的静态构造函数和java中的构造代码块、静态代码块

      1.java和c#静态成员调用的不同之处 static 表示静态的,也就是共享资源,它是在类加载的时候就创建了 java中   可以通过实例来调用,也可以通过类名.成员名来调用,但是一般最好使用类名. ...

    8. TCP协议解析及相关问题

      TCP协议是什么: TCP是一种传输控制层的协议(TCP,Transmission Control Protocol)是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议.也就是要 ...

    9. Shiro学习(10)Session管理

      Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理.会话事件监听.会话存储/持久化.容器无关的集群. ...

    10. Alibaba Cloud Toolkit,你确定不来尝鲜一下?

      阿里云出了新的工具,Alibaba Cloud Toolkit,看看“toolkit”这个名字就知道它是一个工具集. 没错!它就是一个工具集,一个集打包部署发布以及探索分析程序的工具集.而我,目前还停 ...