首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过外部JSON API使用Laravel 5.8身份验证(创建自己的ServiceProvider)

Laravel是一种流行的PHP框架,它提供了许多便捷的功能和工具,包括身份验证。在Laravel 5.8中,你可以通过外部JSON API来实现身份验证。下面是一个完善且全面的答案:

通过外部JSON API使用Laravel 5.8身份验证,可以通过创建自己的ServiceProvider来实现。ServiceProvider是Laravel框架中的一个重要组件,用于注册和绑定各种服务和功能。

首先,你需要创建一个自定义的ServiceProvider。可以使用以下命令在Laravel项目中创建一个ServiceProvider:

代码语言:txt
复制
php artisan make:provider CustomAuthProvider

接下来,打开生成的CustomAuthProvider类文件,你可以在register方法中进行服务的注册和绑定。在这个方法中,你可以使用Laravel的Auth门面来定义自定义的身份验证驱动程序。

register方法中,你可以使用Auth::extend方法来注册自定义的身份验证驱动程序。以下是一个示例:

代码语言:txt
复制
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\ServiceProvider;

class CustomAuthProvider extends ServiceProvider
{
    public function register()
    {
        Auth::extend('custom', function ($app, $name, array $config) {
            // 在这里定义你的自定义身份验证逻辑
        });
    }
}

在上面的示例中,我们使用Auth::extend方法注册了一个名为'custom'的自定义身份验证驱动程序。你可以根据自己的需求来命名和定义驱动程序。

接下来,你需要在config/auth.php配置文件中定义你的自定义驱动程序。在guards数组中,你可以添加一个新的驱动程序配置,如下所示:

代码语言:txt
复制
'guards' => [
    'api' => [
        'driver' => 'custom',
        'provider' => 'users',
    ],
],

在上面的示例中,我们将'api'驱动程序配置为使用我们自定义的'custom'驱动程序,并指定了相应的用户提供者。

最后,你需要在config/app.php配置文件中注册你的自定义ServiceProvider。在providers数组中,添加以下行:

代码语言:txt
复制
App\Providers\CustomAuthProvider::class,

完成上述步骤后,你的自定义身份验证驱动程序就可以使用了。你可以在控制器或路由中使用Laravel的Auth门面来进行身份验证。

关于外部JSON API的使用,你可以在自定义身份验证驱动程序中编写相应的逻辑来调用外部API进行身份验证。你可以使用Laravel的Http门面来发送HTTP请求并处理响应。

总结一下,通过创建自己的ServiceProvider,你可以在Laravel 5.8中使用外部JSON API进行身份验证。你可以在自定义ServiceProvider中注册和定义自己的身份验证驱动程序,并在相应的配置文件中进行配置。使用Laravel的Auth门面和Http门面,你可以方便地进行身份验证和与外部API的交互。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel 用户认证

应用身份认证一般包含两种:web 浏览器认证和API 认证 基于 web 浏览器身份验证:常见于前后端混合开发项目,php混合html模版;使用session+cookie完成身份验证。...现在很少见了 基于 api 身份验证:常见于前后端分离项目,一套api同时给前端,Android,iOS提供服务;使用token完成身份验证。...也是当下最流行开发模式 在其核心,Laravel 用户认证是由「看守器」和「提供器」。看守器定义如何对每个请求用户进行身份验证。...Auth::logout(); 添加自定义看守器 你可以使用 Auth facade 上 extend 方法定义自己身份验证看守器。你应该在 服务提供器 中调用 extend 方法。...如果不使用传统关系数据库来存储用户,则需要使用自己身份验证用户提供程序来扩展 Laravel

2.1K20
  • 如何在Laravel5.8中正确地应用Repository设计模式

    在本文中,我会向你展示如何在 Laravel 中从头开始实现 repository 设计模式。我将使用 Laravel 5.8.3 版,但 Laravel 版本不是最重要。...现在我们已经创建好了一个新 Laravel 项目,接下来应该为它创建一个控制器和模型。...Laravel 5.8 以下旧版本,请将 $table- bigIncrements('id'); 替换为: $table- increments('id'); 设置数据库 我将使用 MySQL...但是假设我们在某个网站上看到了一个很棒博客 API,我们想使用这个 API 作为数据源,我们所要做就是重写 BlogRepository 来调用这个 API 替换 Eloquent 。...设想一下,一个拥有 10 个以上模型项目,每个模型都有自己 repository ,你 AppServiceProvider 可读性将会大大降低。

    4.2K31

    减少服务提供者启动加速你服务性能 2.0

    性能一直是Laravel最大话题之一, 但它也确实为很多PHP开发者提供了很多不一样知识, 这里再次为框架加速一次....比如Laravel现在已经内置了跨域中间件, 如果只是为APP提供接口,完全就没有跨域问题, 可以直接注释这个中间件 比如内置API限制速率接口, 可能对很多项目场景就不合适 减少服务提供者 比如接口就不需要视图服务...,Session服务,密码重置服务等等 当然要讲重点还是和API和Admin混合项目, 使用了一个全栈框架,相信也有很多项目使用Laravel-admin或者是Dcat Admin 之前我也写过一篇文章讲过如何减少你服务提供者..., 因为自从Laravel5.5之后,需要第三方包都可以自己注册,然后Laravel自动发现这些服务提供者 可以运行这条命令找出你已经注册服务提供者: php artisan package:discover...这里可以很明显看到了dcat/laravel-admin, 我们只需要去项目根目录下composer.json写入以下配置 "extra": { "laravel": { "

    15110

    减少服务提供者启动加速你服务性能 2.0

    性能一直是Laravel最大话题之一, 但它也确实为很多PHP开发者提供了很多不一样知识, 这里再次为框架加速一次....比如Laravel现在已经内置了跨域中间件, 如果只是为APP提供接口,完全就没有跨域问题, 可以直接注释这个中间件 比如内置API限制速率接口, 可能对很多项目场景就不合适 减少服务提供者 比如接口就不需要视图服务...,Session服务,密码重置服务等等 当然要讲重点还是和API和Admin混合项目, 使用了一个全栈框架,相信也有很多项目使用Laravel-admin或者是Dcat Admin 之前我也写过一篇文章讲过如何减少你服务提供者..., 因为自从Laravel5.5之后,需要第三方包都可以自己注册,然后Laravel自动发现这些服务提供者 可以运行这条命令找出你已经注册服务提供者: php artisan package:discover...这里可以很明显看到了dcat/laravel-admin, 我们只需要去项目根目录下composer.json写入以下配置 "extra": { "laravel": { "

    15210

    Laravel API教程:如何构建和测试RESTful API

    在本文中,我们将探讨如何构建和测试使用Laravel进行身份验证强大API。我们将使用Laravel 5.4,所有的代码都可以在GitHub上参考。...当您必须返回分页资源列表时很有用。 400: 错误请求。无法通过验证请求标准选项。 401:未经授权 用户需要进行身份验证。 403:禁止 用户已通过身份验证,但没有执行操作权限。...使用中间件限制访问 通过api_token创建,我们可以切换路由文件中身份验证中间件: Route::middleware('auth:api') ->get('/user', function...您可以使用许多外部工具来测试您API; 然而,Laravel内部测试是一个更好选择 - 我们可以拥有测试API结构和结果所有好处,同时保留对数据库完全控制。...绝对有改进空间 - 您可以使用Passport软件包实现OAuth2 ,集成分页和转换层(我推荐使用Fractal),但是我想通过Laravel创建和测试API基础知识外部包装。

    20.4K20

    如何扩展Laravel Auth来满足项目需求

    之前写过两篇文章分别介绍了Laravel Auth认证系统构成和实现细节知道了Laravel是如何应用看守器和用户提供器来进行用户认证,但是在现实工作中大部分时候产品用户体系是早就有的这种情况下就无法使用框架自带...bcypt加密存储密码,但是很多已经存在老系统中用户密码都是用盐值加明文密码做哈希后存储,如果想要在这种老系统中应用Laravel开发项目的话那么我们就不能够再使用Laravel自带登录和注册方法了...SessionGuard, 在系统中会有对外提供API模块,在这种情形下我们一般希望用户登录认证后会返回给客户端一个JSON WEB TOKEN,每次调用接口时候通过这个token来认证请求接口是否是有效用户...使用登录认证方法, 在认证中会使用上面注册 jwt看守器来完成认证,认证完成后会返回一个JSON WEB TOKEN给客户端 Route::post('apilogin', 'Auth\LoginController...用户认证系统,目的是让大家对Laravel用户认证系统有一个更好理解知道在Laravel系统默认自带用户认证方式无法满足我们需求时如何通过自定义这两个组件来扩展功能完成我们项目自己认证需求。

    2.7K20

    推荐 Laravel API 项目必须使用 8 个扩展包

    如今在现代网络开发中,比较流行模式是基于 API 开发,可以通过手机或网站来创建服务。 Laravel创建基于 API 项目的最佳框架之一,它为世界各地大型社区提供了高速开发。...Barryvdh/laravel-debugbar 调试是开发过程中非常重要一个环节, 通过分析问题,来找到问题,从而解决问题。...这个扩展包在Laravel 5中封装了  PHP Debug Bar ,它使用了一个 ServiceProvider 去注册并输出 debugbar 信息 。...当你需要在两方之间转移数据时,JWT (JSON Web Token) 是紧凑,URL安全代表, 这里 是 JWT 在 laravel 中流行扩展包. 3....Spatie/laravel-fractal 对于一个基于 API 项目来说,最重要事情就是 API 响应数据输出。Laravel 采用 Eloquent 来输出 json 或数据格式数据。

    2.8K10

    推荐17-Laravel使用 JWT 认证 Restful API

    在此文章中,我们将学习如何使用 JWT 身份验证Laravel 中构建 restful API 。JWT 代表 JSON Web Tokens 。...我们还将使用 API 为用户产品创建功能齐全 CRUD 应用。 在使用跨平台应用程序时, API 是一个非常不错选择。除了网站,您产品可能还有 Android 和 iOS 应用程序。...使用 API 时,只需使用一些参数点击 GET , POST 或其他类型请求,服务器就会返回 JSON(JavaScript Object Notation) 格式一些数据,这些数据由客户端应用程序处理...说明 我们先写下我们应用程序详细信息和功能。我们将使用 JWT 身份验证laravel使用 restful API 构建基本用户产品列表。...让我们使用 JWT 身份验证laravel 中写 Restful API 逻辑。

    11K20

    深入解析Laravel5.5中包自动发现Package Auto Discovery

    composer.json 一切起源都是来自 composer.json ,在使用 composer 时候,你可以在 post-autoload-dump 部分指定你想执行脚本,比如在 Laravel...而 PackageManifest 早就注册在 Laravel Container 中,那么它可以保证每次在启动 Laravel 时候都能使用 PackageManifest build()...方法,这个 build() 方法主要逻辑就是: 找寻 vendor/composer/installed.json 这个文件,这个文件是 composer 自己生成,记录着每一次 composer...\ServiceProvider" ], "aliases": { "Debugbar": "Barryvdh\Debugbar\Facade" } } } Laravel 首先将以上内容直接读取下来放到一个...\ServiceProvider', ), 'aliases' => array ( 'Debugbar' => 'Barryvdh\Debugbar\Facade', ), ), ); Laravel

    1.3K10

    Laravel 优雅之处 之,Passport搭建SSO系统

    优雅路由定义:Laravel 提供了一种优雅而直观方式来定义应用程序路由,可以通过闭包或控制器方法来处理 HTTP 请求。...优雅任务调度:Laravel 任务调度器提供了一种优雅方式来调度后台任务,可以通过简单代码定义和配置来执行任务。...对于 Laravel 认证系统,可以通过使用 Laravel Passport 这个包来构建一个基于 OAuth2 单点登录(SSO)系统。...auth()->user() : null;});接下来,我们需要创建一个路由来处理用户身份验证请求。可以使用 Laravel 自带 AuthController 类来处理此请求。...假设我们有一个名为“App2”应用程序,现在我们需要修改该应用程序身份验证逻辑,以使用我们刚才创建 Passport 客户端来进行身份验证

    1.1K50

    Laravel 7发行说明

    Laravel Sanctum 为 SPA (单页应用程序),移动应用程序和基于令牌简单 API 提供了轻巧身份验证系统。 Sanctum 允许应用程序每个用户生成多个 API 令牌。...基于这些函数, Laravel 7 现在提供了一个更加面向对象、更加流畅字符串操作库。你可以使用 Str::of 方法创建一个 Illuminate\Support\Stringable 对象。...例如,考虑这种情况,该情况是通过 Slug 为特定用户查找博客文章: use App\Post; use App\User; Route::get('api/users/{user}/posts/{...Laravel 7 允许为单个应用配置多个邮件驱动。在 mail 配置文件中每个邮件驱动都拥有它们自己配置以及自己独特 「transport」,这允许你应用使用不同邮件服务来发送某些邮件。...默认情况下,Laravel使用 mail 配置文件中 default 选项指定邮件驱动作为邮件驱动。然而,你可以通过 mailer 方法来使用特定邮件驱动来发送邮件。

    9K20

    Laravel学习记录--微信开发(day3)

    / 一,部署项目 1.1composer创建项目 composer create-project laravel/laravel=5.5 fx; 1.2安装Wechat扩展 Laravel < 5.8...composer require "overtrue/laravel-wechat:~4.0" Laravel >= 5.8 composer require "overtrue/laravel-wechat...通过$app->material->uploadImage(path);上传图片,该方法会将图标上传至素材库并返回media_id及url 我们拿到media_id就可以使用素材管理库图片了 如下案例...返回值: ticket:二维码ticket用于换取二维码 expire_seconds:过期时间 url:二维码url(通过该url获取二维码) 创建永久二维码 $result = $app->->qrcode...”找到获取用户信息接口 URL https://api.weibo.com/2/users/show.json 支持格式 JSON HTTP请求方式 GET public function

    1.5K10

    详解将数据从Laravel传送到vue四种方式

    在过去两三年里,我一直在研究同时使用 Vue 和 Laravel 项目,在每个项目开发开始阶段,我必须问自己 “我将如何将数据从 Laravel 传递到 Vue ?”。...对于 Laravel 5.5+ 使用 json 指令: 使用自定义组件和 Laravel 自身 json blade 指令可以让您轻松地将数据移动到道具中。...同时,api 组只有一个基本限制和一些绑定。如果您目标只是通过一个基本、轻量级 api 将信息拉入 Vue ,而这个 api 不需要身份验证或 post 请求,那么您可以到此为止。...它使我们通过 api 拉入路由也可以包含应用程序常规网络路由通常会使用所有会话标量和令牌。...你可以使用内置 api auth 中间件来执行此操作,或者也可以自己滚动在发送请求过程中获取令牌。

    8K31

    深入剖析 Laravel 服务提供者实现原理

    服务提供者功能是完成 Laravel 应用引导启动,或者说是将 Laravel各种服务「注册」到「Laravel 服务容器」,这样才能在后续处理 HTTP 请求时使用这些服务。...服务提供者入门 创建自定义服务提供者 要创建自定义「服务提供者」,可以直接使用 Laravel 内置 artisan 命令完成。...,包括: 如何创建自定义服务提供者; 创建 register 方法注册服务到 Laravel 服务容器; 创建 boot 方法启动服务提供者引导程序; 配置我们服务提供者到 config/app.php...下一小节,我们将焦点转移到「服务提供者」实现原理中,深入到 Laravel 内核中去探索「服务提供者」如何被注册和启动,又是如何能够通过延迟技术提升 Laravel 应用性能。...Laravel 所有核心服务都是通过服务提供者进行引导启动,所以想深入了解 Laravel 那么研究「服务提供者」原理是个绕不开的话题。

    4.4K10
    领券