详解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应用程序来获取Web服务器的状态信息
Oct 09 PHP
.htaccess文件保护实例讲解
Feb 06 PHP
第4章 数据处理-php数组的处理-郑阿奇
Jul 04 PHP
与文件上传有关的php配置参数总结
Jun 14 PHP
关于JSON以及JSON在PHP中的应用技巧
Nov 27 PHP
php生成图片验证码的方法
Apr 15 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
PHP实现的MD5结合RSA签名算法实例
Oct 07 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
thinkPHP框架中layer.js的封装与使用方法示例
Jan 18 PHP
关于Laravel-admin的基础用法总结和自定义model详解
Oct 08 PHP
PHP笛卡尔积实现原理及代码实例
Dec 09 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生成带有雪花背景的验证码
2008/09/28 PHP
基于PHP编程注意事项的小结
2013/04/27 PHP
基于PHP服务端图片生成缩略图的方法详解
2013/06/20 PHP
浅析PHP原理之变量(Variables inside PHP)
2013/08/09 PHP
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
PHP解析RSS的方法
2015/03/05 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
传递参数的标准方法(jQuery.ajax)
2008/11/19 Javascript
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
javascript self对象使用详解
2016/10/18 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
2018/11/22 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
2019/03/07 Javascript
js设置默认时间跨度过程详解
2019/07/17 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
python解析xml模块封装代码
2014/02/07 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
2020/02/05 Python
pyqt5中动画的使用详解
2020/04/01 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
python3排序的实例方法
2020/10/20 Python
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
大学毕业生自我鉴定
2013/11/05 职场文书
护士思想汇报
2014/01/12 职场文书
如何签定毕业生就业协议书
2014/09/28 职场文书
丧事主持词
2015/07/02 职场文书
大学生暑期实践报告
2015/07/13 职场文书