详解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 相关文章推荐
PHP学习之PHP变量
Oct 09 PHP
PHP 高手之路(三)
Oct 09 PHP
php截取utf-8中文字符串乱码的解决方法
Mar 29 PHP
纯php打造的tab选项卡效果代码(不用js)
Dec 29 PHP
PHP中substr()与explode()函数用法分析
Nov 24 PHP
php提取字符串中网站url地址的方法
Dec 03 PHP
关于URL最大长度限制的相关资料查证
Dec 23 PHP
Zend Framework路由器用法实例详解
Dec 11 PHP
PHP实现图片批量打包下载功能
Mar 01 PHP
PHP多进程编程实例详解
Jul 19 PHP
PHP回调函数与匿名函数实例详解
Aug 16 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 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
Ajax PHP分页演示
2007/01/02 PHP
php安全配置 如何配置使其更安全
2011/12/16 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
PHP中鲜为人知的10个函数
2014/02/28 PHP
php中filter_input函数用法分析
2014/11/15 PHP
php上传文件问题汇总
2015/01/30 PHP
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
js+html5实现canvas绘制简单矩形的方法
2015/06/05 Javascript
JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法
2015/07/01 Javascript
第七章之菜单按钮图标组件
2016/04/25 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
2016/09/01 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
2017/12/24 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
2019/07/13 Javascript
继承行为在 ES5 与 ES6 中的区别详解
2019/12/24 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
python海龟绘图实例教程
2014/07/24 Python
python中常用的九种预处理方法分享
2016/09/11 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
函授本科毕业自我鉴定
2013/10/09 职场文书
合作意向协议书范本
2014/03/31 职场文书
大学毕业生推荐信
2014/07/09 职场文书
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
2014年个人教学工作总结
2014/12/09 职场文书
2015年元旦标语大全
2014/12/09 职场文书
演讲比赛通讯稿
2015/07/18 职场文书
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android