详解laravel安装使用Passport(Api认证)

作者:今天一点也不冷 时间:2023-11-19 02:08:54 

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认证)

来源:https://blog.csdn.net/qq_34827048/article/details/79315131

标签:laravel,Passport
0
投稿

猜你喜欢

  • Windows下Anaconda2安装NLTK教程

    2022-08-11 04:30:49
  • PyCharm搭建Spark开发环境的实现步骤

    2022-05-21 04:21:17
  • css样式表实现首写字母大写

    2007-10-08 12:11:00
  • Javascript DOM 编程实例讲解--仿LightBox效果提示框

    2008-05-01 13:25:00
  • python3.6+selenium实现操作Frame中的页面元素

    2023-10-13 01:37:00
  • windows系统mysql5.7.18安装图文教程

    2024-01-26 04:40:59
  • Python中的sys.stdout.write实现打印刷新功能

    2022-01-17 14:51:50
  • 三层级联动的日期选择下拉框javascript源码

    2013-08-15 16:50:40
  • 详解python列表(list)的使用技巧及高级操作

    2021-05-12 15:26:47
  • python2 与 python3 实现共存的方法

    2023-06-13 23:56:29
  • 最新anaconda安装配置教程

    2021-07-17 05:05:34
  • Python OpenCV超详细讲解读取图像视频和网络摄像头

    2023-11-26 05:22:36
  • 基于Go和PHP语言实现爬楼梯算法的思路详解

    2024-05-22 10:18:20
  • Python学习之包与模块详解

    2021-05-26 03:40:07
  • 手机网站开发必修课[2009总结版]

    2010-01-05 17:02:00
  • Javascript中的函数声明与函数表达式(奇技淫巧)

    2024-04-23 09:08:43
  • MySQL数据库常用命令小结

    2024-01-15 22:16:31
  • python数字图像处理之对比度与亮度调整示例

    2021-02-13 19:33:19
  • 设计规范有谱么?

    2008-06-06 12:28:00
  • MySQL判断时间段是否重合的两种方法

    2024-01-21 02:41:05
  • asp之家 网络编程 m.aspxhome.com