详解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 相关文章推荐
PHP5.3.1 不再支持ISAPI
Jan 08 PHP
利用PHP+JS实现搜索自动提示(实例)
Jun 09 PHP
php读取excel文件的简单实例
Aug 26 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
Feb 13 PHP
Yii 快速,安全,专业的PHP框架
Sep 03 PHP
PHP设计模式之装饰者模式代码实例
May 11 PHP
Smarty模板引擎缓存机制详解
May 23 PHP
详解PHP中websocket的使用方法
Sep 15 PHP
thinkPHP5.0框架模块设计详解
Mar 18 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 PHP
Yii 实现数据加密和解密
Mar 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
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
php隐藏实际地址的文件下载方法
2015/04/18 PHP
PHP代码重构方法漫谈
2018/04/17 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
2016/08/31 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
详谈Angular路由与Nodejs路由的区别
2017/03/05 NodeJs
webpack2.0搭建前端项目的教程详解
2017/04/05 Javascript
shiro授权的实现原理
2017/09/21 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
2017/12/21 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
PyQt5每天必学之事件与信号
2018/04/20 Python
基于windows下pip安装python模块时报错总结
2018/06/12 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
2020/06/04 Python
在什么时候需要使用"常引用"
2015/12/31 面试题
后备干部考察材料
2014/02/12 职场文书
企业党员公开承诺书
2014/03/26 职场文书
拉拉队口号
2014/06/16 职场文书
五五普法心得体会
2014/09/04 职场文书
高中生毕业评语
2014/12/30 职场文书
小学教师求职信范文
2015/03/20 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
公司员工奖惩制度
2015/08/04 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书
Python开发简易五子棋小游戏
2022/05/02 Python