详解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 相关文章推荐
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
Jun 05 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
Jun 21 PHP
php生成txt文件实例代码介绍
Apr 28 PHP
php使用pdo连接sqlite3的配置示例
May 27 PHP
PHP经典算法集锦【经典收藏】
Sep 14 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
php实现支持中文的文件下载功能示例
Aug 30 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
Oct 25 PHP
Laravel框架实现定时发布任务的方法
Aug 16 PHP
thinkPHP事务操作简单案例分析
Oct 17 PHP
laravel 框架执行流程与原理简单分析
Feb 01 PHP
PHP var关键字相关原理及使用实例解析
Jul 11 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
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
2010/04/02 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
js getElementsByTagName的简写方式
2010/06/27 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
JavaScript数据类型检测代码分享
2015/01/26 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
利用js编写网页进度条效果
2017/10/08 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
详解Vue项目部署遇到的问题及解决方案
2019/01/11 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
浅析Python基础-流程控制
2016/03/18 Python
Python如何为图片添加水印
2016/11/25 Python
python正则实现提取电话功能
2018/02/24 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
房地产公司见习自我鉴定
2014/04/28 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
三严三实学习心得体会
2014/10/13 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
2015年测量员工作总结
2015/05/23 职场文书
公司人力资源管理制度
2015/08/05 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
z-index不起作用
2021/03/31 HTML / CSS
sass 常用备忘案例详解
2021/09/15 HTML / CSS