详解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 相关文章推荐
关于Intype一些小问题的解决办法
Mar 28 PHP
PHP入门学习的几个不错的实例代码
Jul 13 PHP
php csv操作类代码
Dec 14 PHP
php购物车实现代码
Oct 10 PHP
PHP中数组合并的两种方法及区别介绍
Sep 14 PHP
深入解析php之sphinx
May 15 PHP
php表单提交与$_POST实例分析
Jan 26 PHP
PHP防止刷新重复提交页面的示例代码
Nov 11 PHP
PHP常用设计模式之委托设计模式
Feb 13 PHP
一个简单安全的PHP验证码类、PHP验证码
Sep 24 PHP
php 使用redis锁限制并发访问类示例
Nov 02 PHP
laravel使用Faker数据填充的实现方法
Apr 12 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网上商城购物车设计代码分享
2012/02/15 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
6种php上传图片重命名的方法实例
2013/11/04 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
jquery实现marquee效果(文字或者图片的水平垂直滚动)
2013/01/07 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
JavaScript字符集编码与解码详谈
2017/02/02 Javascript
JavaScript实现实时更新系统时间的实例代码
2017/04/04 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
Vue路由切换页面不更新问题解决方案
2020/07/10 Javascript
vue 获取元素额外生成的data-v-xxx操作
2020/09/09 Javascript
在python的类中动态添加属性与生成对象
2016/09/17 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
20岁生日感言
2014/01/13 职场文书
大学生个人事迹材料
2014/01/21 职场文书
付款委托书范本
2014/04/04 职场文书
毕业留言寄语大全
2014/04/10 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
保证金退回承诺函格式
2015/01/21 职场文书
接收函格式
2015/01/30 职场文书
2015年国庆节广播稿
2015/08/19 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
DBCA命令行搭建Oracle ADG的流程
2021/06/11 Oracle