详解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程序级守护进程的实现与优化的使用概述
May 02 PHP
PHP+jQuery实现自动补全功能源码
May 15 PHP
php解析html类库simple_html_dom(详细介绍)
Jul 05 PHP
smarty模板中拼接字符串的方法
Feb 14 PHP
php常用字符串比较函数实例汇总
Nov 24 PHP
php如何实现只替换一次或N次
Oct 29 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
PHP类相关知识点实例总结
Sep 28 PHP
基于PHP制作验证码
Oct 12 PHP
利用PHP抓取百度阅读的方法示例
Dec 18 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
May 20 PHP
PHP ADODB实现事务处理功能示例
May 25 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面向对象中static静态属性和静态方法的调用
2015/02/08 PHP
php执行多个存储过程的方法【基于thinkPHP】
2016/11/08 PHP
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
2011/07/26 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
js 异步操作回调函数如何控制执行顺序
2013/12/24 Javascript
Javascript 中创建自定义对象的方法汇总
2014/12/04 Javascript
浅谈js之字面量、对象字面量的访问、关键字in的用法
2016/11/20 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
Vue.js用法详解
2017/11/13 Javascript
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
微信小程序与后台PHP交互的方法实例分析
2018/12/10 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
学习python处理python编码问题
2011/03/13 Python
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
Python多线程下载文件的方法
2015/07/10 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
python 格式化输出百分号的方法
2019/01/20 Python
浅谈PYTHON 关于文件的操作
2019/03/19 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
Apache,wsgi,django 程序部署配置方法详解
2019/07/01 Python
python numpy数组中的复制知识解析
2020/02/03 Python
详解python中GPU版本的opencv常用方法介绍
2020/07/24 Python
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
医学生实习自我鉴定
2013/09/27 职场文书
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
审计工作个人的自我评价
2013/12/25 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
硕士学位申请报告
2015/05/15 职场文书
招商银行收入证明
2015/06/17 职场文书
学雷锋感言
2015/08/03 职场文书
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL