• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Laravel5.5中利用Passport实现Auth认证的方法讲解

php 搞代码 3年前 (2022-01-21) 23次浏览 已收录 0个评论

Laravel5.3 开始使用Passport作为API授权,Passport 是基于 OAuth2 的,下面这篇文章主要给大家介绍了关于Laravel5.5中利用Passport实现Auth认证的方法,文中通过示例代码介绍介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

最近在写一个前后端分离项目,本来想用 Jwt-auth + Dingo 开发的,但是略感笨重,于是想到了 Laravel 的 Passport 和 5.5 新出的 Api Resource。Laravel Passport 是一套已经封装好的 OAuth2 服务端实现

OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。

OAuth 2.0 是目前比较流行的做法,它率先被Google, Yahoo, Microsoft, Facebook等使用。之所以标注为 2.0,是因为最初有一个1.0协议,但这个1.0协议被弄得太复杂,易用性差,所以没有得到普及。2.0是一个新的设计,协议简单清晰,但它并不兼容1.0,可以说与1.0没什么关系。

所以这里就不细说了,先来看看怎么安装它吧。

安装

安装 Passport

1.在你的 Shell 中执行以下命令

composer require laravel/passport

如果你使用的 Laravel 版本是 5.5 以下,你需要手动在 config/app.php 文件 providers 数组中加入如下代码

Laravel\Passport\PassportServiceProvider::class,

2.运行迁移文件

在你的 Shell 中执行如下命令

php artisan migrate

Passport 服务提供器使用框架注册自己的迁移目录,因此在注册服务后,你可以直接运行 php artisan migrate 来为 Passport 生成所需的数据表

3.生成加密密钥

在你的 Shell 中执行如下命令

php artisan passport:install

此命令会创建生成安全访问令牌时所需的加密密钥,同时,这条命令也会创建用于生成访问令牌的「个人访问」客户端和「密码授权」。

4.添加 Trait

将 LaravelPassportHasApiTokens Trait 添加到

本文来*源gaodai^.ma#com搞#代!码网
搞gaodaima代码

AppUser 模型中

<?phpnamespace App;use Laravel\Passport\HasApiTokens;use Illuminate\Notifications\Notifiable;use Illuminate\Foundation\Auth\User as Authenticatable;class User extends Authenticatable{ use HasApiTokens, Notifiable;}

5.注册路由

在 AuthServiceProvider 的 boot 方法中调用 Passport::routes 函数。

class AuthServiceProvider extends ServiceProvider{ public function boot() {  $this->registerPolicies();  Passport::routes(); }}

如果你的程序是需要前后端分离形式的OAuth认证而不是多平台认证那么你可以在routers()方法中传递一个匿名函数来自定定义自己需要注册的路由,我这里是前后端分离的认证形式,因此我只需要对我的前端一个Client提供Auth的认证,所以我只注册了获取Token的路由,同时我还为它自定义了前缀名。

Passport::routes(function(RouteRegistrar $router) { $router->forAccessTokens();},['prefix' => 'api/oauth']);

6.更改看守器驱动

将配置文件 config/auth.php 中授权看守器 guards 的 api 的 driver 选项改为 passport。此调整会让你的应用程序在在验证传入的 API 的请求时使用 Passport 的 TokenGuard 来处理

'guards' => [ 'web' => [  'driver' => 'session',  'provider' => 'users', ], 'api' => [  'driver' => 'passport',  'provider' => 'users', ],],

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Laravel5.5中利用Passport实现Auth认证的方法讲解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址