详解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扩展函数
Oct 09 PHP
php防攻击代码升级版
Dec 29 PHP
php中3种方法删除字符串中间的空格
Mar 10 PHP
yii操作session实例简介
Jul 31 PHP
PHP中使用xmlreader读取xml数据示例
Dec 29 PHP
PHP递归调用数组值并用其执行指定函数的方法
Apr 01 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
php实现xml与json之间的相互转换功能实例
Jul 07 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
php实现给二维数组中所有一维数组添加值的方法
Feb 04 PHP
由php中字符offset特征造成的绕过漏洞详解
Jul 07 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 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
一个数据采集类
2007/02/14 PHP
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
2013/04/25 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
jquery 选项卡效果 新手代码
2011/07/08 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
JavaScript 学习笔记之语句
2015/01/14 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
简单实现js页面切换功能
2021/01/10 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
assert()函数用法总结(推荐)
2017/01/25 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
[01:00:06]加油DOTA_EP01_网络版
2014/08/09 DOTA
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
python遍历数组的方法小结
2015/04/30 Python
利用python写个下载teahour音频的小脚本
2017/05/08 Python
Python3.7 dataclass使用指南小结
2019/02/22 Python
Django中自定义查询对象的具体使用
2019/10/13 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
Python中sys模块功能与用法实例详解
2020/02/26 Python
Python figure参数及subplot子图绘制代码
2020/04/18 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
用python进行视频剪辑
2020/11/02 Python
python 使用openpyxl读取excel数据
2021/02/18 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
英国在线药房:Express Chemist
2019/03/28 全球购物
巴西本土电商平台:Americanas
2020/06/21 全球购物
康拓普公司Java笔面试
2016/09/23 面试题
应届生法律求职信
2013/10/22 职场文书
中级会计大学生职业生涯规划书
2014/09/16 职场文书
公司周年庆典标语
2014/10/07 职场文书
小学校长个人总结
2015/03/03 职场文书
教师节主持词开场白
2015/05/29 职场文书
Python 机器学习工具包SKlearn的安装与使用
2021/05/14 Python
Github 使用python对copilot做些简单使用测试
2022/04/14 Python