详解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 fsockopen写的HTTP下载的类
Feb 22 PHP
dedecms中显示数字验证码的修改方法
Mar 21 PHP
php下的权限算法的实现
Apr 28 PHP
php完全过滤HTML,JS,CSS等标签
Jan 16 PHP
php文件上传表单摘自drupal的代码
Feb 15 PHP
php读取excel文件示例分享(更新修改excel)
Feb 27 PHP
PHP APC缓存配置、使用详解
Mar 06 PHP
PHP操作文件的一些基本函数使用示例
Nov 18 PHP
PHP中Session可能会引起并发问题
Jun 26 PHP
ThinkPHP中html:list标签用法分析
Jan 09 PHP
PHP实现Huffman编码/解码的示例代码
Apr 20 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
Dec 20 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
聊天室php&amp;mysql(二)
2006/10/09 PHP
深入apache host的配置详解
2013/06/09 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
JSON 学习之完全手册 图文
2007/05/29 Javascript
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
微信小程序实现自动定位功能
2018/10/31 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
python pickle 和 shelve模块的用法
2013/09/16 Python
Python功能键的读取方法
2015/05/28 Python
Python实现拷贝多个文件到同一目录的方法
2016/09/19 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
python实现堆排序的实例讲解
2020/02/21 Python
用python制作个视频下载器
2021/02/01 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
写给老师的表扬信
2014/01/21 职场文书
信息学院毕业生自荐信范文
2014/03/04 职场文书
公司管理建议书范文
2014/03/12 职场文书
给校长的建议书300字
2014/05/16 职场文书
大学新闻系求职信
2014/06/03 职场文书
毕业实习单位意见
2015/06/04 职场文书
治庸问责工作总结
2015/08/11 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
只需要12页,掌握撰写一流商业计划书的技巧
2019/05/07 职场文书
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python
Python实现8种常用抽样方法
2021/06/27 Python