详解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的基本常识小结
Jul 05 PHP
PHP写日志的实现方法
Nov 05 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
Jun 20 PHP
PHP+MySQL实现的简单投票系统实例
Feb 24 PHP
thinkphp3.x中display方法及show方法的用法实例
May 19 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
Nov 16 PHP
php实现背景图上添加圆形logo图标的方法
Nov 17 PHP
Yii 2.0中场景的使用教程
Jun 02 PHP
PHP的mysqli_select_db()函数讲解
Jan 23 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
Jun 05 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
Dec 10 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
espresso double下 咖啡粉超细时 饼压力对咖啡的影响
2021/03/03 冲泡冲煮
php adodb分页实现代码
2009/03/19 PHP
php提示undefined index的几种解决方法
2012/05/21 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
PHP检测用户是否关闭浏览器的方法
2016/02/14 PHP
laravel 数据验证规则详解
2019/10/23 PHP
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
2011/10/21 Javascript
一个简单的全屏图片上下打开显示网页效果示例
2014/07/08 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
js脚本分页代码分享(7种样式)
2015/08/19 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
vue axios数据请求get、post方法及实例详解
2018/09/11 Javascript
[02:36]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma 选手采访
2021/03/11 DOTA
python批量修改文件后缀示例代码分享
2013/12/24 Python
python中迭代器(iterator)用法实例分析
2015/04/29 Python
详解Python中的序列化与反序列化的使用
2015/06/30 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
利用Anaconda完美解决Python 2与python 3的共存问题
2017/05/25 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
实例代码讲解Python 线程池
2020/08/24 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
2021/02/25 Python
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
Oracle的内存结构(Memory structures)
2015/06/10 面试题
智乐游戏测试笔试题
2014/05/21 面试题
办公室文秘岗位职责
2013/11/15 职场文书
水果连锁超市创业计划书
2014/01/24 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
街道务虚会发言材料
2014/10/20 职场文书
大学生英文求职信范文
2015/03/19 职场文书
学校党支部承诺书
2015/04/30 职场文书
离婚财产分割协议书
2015/08/11 职场文书
学习经验交流会策划书
2015/11/02 职场文书