详解laravel安装使用Passport(Api认证)


Posted in PHP onJuly 27, 2018

Laravel通过传统的登录表单已经让用户认证变得很简单,但是API怎么办?API通常使用token进行认证并且在请求之间不维护session状态。Laravel使用Laravel Passport让API认证变得轻而易举,Passport基于Alex Bilbie维护的League OAuth2 server,可以在数分钟内为Laravel应用提供完整的OAuth2服务器实现。

中文文档

http://laravelacademy.org/post/6813.html

安装

composer require laravel/passport

接下来,在配置文件 config/app.php 的providers 数组中注册 Passport 服务提供者:

Laravel\Passport\PassportServiceProvider::class,

Passport 迁移将会为应用生成用于存放客户端和访问令牌的数据表 (迁移文件位置/vendor/laravel/passport/database)

php artisan migrate

创建生成安全访问令牌时用到的加密密钥及私人访问和密码访问客户端。

php artisan passport:install

Trait 添加到 App\User 模型中,这个 Trait 会给这个模型提供一些辅助函数,用于检查已认证用户的令牌和使用作用于。

Laravel\Passport\HasApiTokens

详解laravel安装使用Passport(Api认证)

然后在 AuthServiceProvider 的 boot 方法中添加 Passport::roues();

详解laravel安装使用Passport(Api认证)

最后,修改文件 config/auth.php 中 api 部分的授权保护项( driver )改为 passport 。此调整会让你的应用程序在接收到 API 的授权请求时使用 Passport 的 TokenGuard 来处理

'guards' => [
    'web' => [
      'driver' => 'session',
      'provider' => 'users',
    ],

    'api' => [
      'driver' => 'passport',
      'provider' => 'users',
    ],
  ],

增加测试路由

Route::group(['namespace' => 'api'], function () {
  Route::post('/login', 'UserController@login');
});
Route::group(['middleware' => 'auth:api', 'namespace' => 'api'], function() {
  Route::get('V1/test/passport', 'UserController@passport');
});

增加控制器

php artisen make:controller UserController
<?php

namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Auth;

class UserController extends Controller
{
  public function __construct()
  {
    $this->content = array();
  }
  public function login()
  {
    // dd(request('name'));
    if(Auth::attempt(['name' => request('name'), 'password' => request('password')]))
    {
      $user = Auth::user();
      $this->content['token'] = $user->createToken('Pi App')->accessToken;
      $status = 200;
    } else {

      $this->content['error'] = "未授权";
       $status = 401;
    }
     return response()->json($this->content, $status);
  }
  public function passport()
  {
    return response()->json(['user' => Auth::user()]);
  }
}

通过postman进行简单测试获取token

详解laravel安装使用Passport(Api认证)

详解laravel安装使用Passport(Api认证)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
第十三节 对象串行化 [13]
Oct 09 PHP
PHP Session变量不能传送到下一页的解决方法
Nov 27 PHP
PHP面向对象概念
Nov 06 PHP
注册页面之前先验证用户名是否存在的php代码
Jul 14 PHP
PHP Error与Logging函数的深入理解
Jun 03 PHP
2014年10个最佳的PHP图像操作库
Jul 14 PHP
PHP面向对象程序设计之类常量用法实例
Aug 20 PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 PHP
两款万能的php分页类
Nov 12 PHP
PHP递归实现层级树状展开
Apr 01 PHP
PHP 返回13位时间戳的实现代码
May 13 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 PHP
Ubuntu彻底删除PHP7.0的方法
Jul 27 #PHP
PHP实现的CURL非阻塞调用类
Jul 26 #PHP
PHP等比例压缩图片的实例代码
Jul 26 #PHP
PHP实现非阻塞模式的方法分析
Jul 26 #PHP
php实现等比例压缩图片
Jul 26 #PHP
PHP输出Excel PHPExcel的方法
Jul 26 #PHP
PHP微信H5支付开发实例
Jul 25 #PHP
You might like
一个简单的域名注册情况查询程序
2006/10/09 PHP
令PHP初学者头疼十四条问题大总结
2008/11/12 PHP
php加密解密实用类分享
2014/01/07 PHP
php实现的ping端口函数实例
2014/11/12 PHP
PHP速成大法
2015/01/30 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
php实现用户注册密码的crypt加密
2017/06/08 PHP
js中的屏蔽的使用示例
2013/07/30 Javascript
javascript中的if语句使用介绍
2013/11/20 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
纯js实现瀑布流布局及ajax动态新增数据
2016/04/07 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
2016/10/05 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
原生JS实现九宫格抽奖效果
2017/04/01 Javascript
详解Angular 自定义结构指令
2017/06/21 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
python中threading超线程用法实例分析
2015/05/16 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
Python3标准库总结
2019/02/19 Python
win10环境下配置vscode python开发环境的教程详解
2019/10/16 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
用canvas实现图片滤镜效果附演示
2013/11/05 HTML / CSS
h5实现获取用户地理定位的实例代码
2017/07/17 HTML / CSS
印尼旅游网站:via
2017/11/12 全球购物
还款承诺书范文
2014/05/20 职场文书
装修施工安全责任书
2014/07/24 职场文书
护理实习生带教计划
2015/01/16 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
看雷锋电影观后感
2015/06/10 职场文书
2016年社区党支部公开承诺书
2016/03/25 职场文书