laravel 基于 API 响应调用的自定义认证

     2023-03-14     176

关键词:

【中文标题】laravel 基于 API 响应调用的自定义认证【英文标题】:laravel custom authentication based on API response call 【发布时间】:2019-06-25 16:56:02 【问题描述】:

目前我使用 Laravel 5.7 并尝试构建登录机制。类似Custom user authentication base on the response of an API call的情况。

我的情况是我在本地没有自己的数据库和用户表。只需调用 API 通过传递用户名、密码、客户端 ID、客户端密码进行验证。

我对邮递员 API 的请求:

POST Body   

  "username": "tester",
  "password": "ps",
  "CLIENT_ID": "xx",
  "CLIENT_SECRET": "yy"

API 对 postman 中成功事件的响应。用户信息通过解码在这个 JWT 令牌中。


    "token_type": "Bearer",
    "id_token": "eyJraWQiOiNGUvdFZC...",
    "access_token": "eyJraWQiOi....",
    "expire_in": 3600,
    "refresh_token": "eyJjdHkiOiJK..."

我希望在 loginContoller 中执行类似操作并使用 Auth::**:

public function postSignIn(Request $request)

    $username = strtolower($request->username);
    $password = $request->password;

    if (Auth::attempt(['username' => $username, 'password' => $password])) 
        return Redirect::to('/dashboard')->with('success', 'Hi '. $username .'! You have been successfully logged in.');
     else 
        return Redirect::to('/')->with('error', 'Username/Password Wrong')->withInput(Request::except('password'))->with('username', $username);
    

问题:

    如何在 laravel 中实现 API 认证? (使用 guzzle、服务提供者、Authenticatable Contract 和驱动 Auth?)

    如何将访问令牌存储在 session/cookie 中,以便在以后每次发送到 API 的每个请求中附加?

    刷新令牌失效后如何存储,获取访问令牌?

感谢所有帮助或任何示例/指导。

【问题讨论】:

嗨,尝试使用“护照”-> laravel.com/docs/5.7/passport ... @EhsanKeramat 嗨,但我没有在这个 laravel 应用程序中实现 API。它只是一个瘦客户端 Web 应用程序。据我了解,护照使用api身份验证并建立在oauth2服务器之上。 嗨,看,如果你想在你的网络、应用程序等中使用身份验证...你必须有数据库访问权限、身份验证控制器代码,所以我们使用 laravel 来减少我们的代码并使用稳定的插件更高的安全性和性能,如果您想在您的应用程序中使用身份验证,您必须使用之前测试和使用过的插件,如“护照”或构建您自己的!为了构建您的韩元,请阅读如何处理令牌、用户名、密码、安全性、性能等...在数据库中设置令牌并比较检查用户值!!! (例如去阅读如何构建自己的护照处理)... @JohnnyCc 你找到解决这个问题的方法了吗?我也有同样的问题 我遇到了类似的问题。该场景是使用 C# 输出 json(承载令牌、用户数据)的 API。前端使用 Laravel。看起来很困难,使用 laravel 构建前端但基于 API 响应调用进行身份验证。正如@JohnnyCc 所说,Laravel 没有实现 API(护照),而是作为前端。 【参考方案1】:

您不必自己动手,有很多插件可以为您解决问题,就像 lavael 护照一样,使用起来非常简单,您必须看看

【讨论】:

使用 IdentityServer 与创建基于 JWT 的自定义身份验证

】使用IdentityServer与创建基于JWT的自定义身份验证【英文标题】:UsingIdentityServervscreatingcustomJWTbasedauthentication【发布时间】:2017-03-2520:54:43【问题描述】:身份验证对我来说有点过头了。我的理解是:客户端执行登录API或身份验... 查看详情

使用自定义 json 响应进行 Laravel 验证

】使用自定义json响应进行Laravel验证【英文标题】:Laravelvalidationwithcustomjsonrespons【发布时间】:2019-07-0904:57:04【问题描述】:快速提问。是否可以更改laravel的JSON验证响应?这是针对我在Laravel中构建的自定义API。验证过程$validat... 查看详情

laravel通过passport实现api请求认证:基于cookie的同域名应用篇

...带的登录页面(基于Session)实现登录,登录成功后使用laravel_token(基于Cookie)实现API请求认证。安装&初始化composerrequirelaravel/passportphpartisanmigrate#执行passport的安装过程phpartisanpassport:install在storage目录下生成oauth-private.key 查看详情

如何从 Laravel 8 中的自定义 Web 路由中删除“api/”前缀?

】如何从Laravel8中的自定义Web路由中删除“api/”前缀?【英文标题】:Howtoremove"api/"prefixfromcustomwebrouteinLaravel8?【发布时间】:2021-07-2606:08:33【问题描述】:我用这个代码修改了我的RouteServiceProvider.php:publicfunctionboot()$this... 查看详情

Api 的自定义身份验证 Azure 移动服务

...ces然后加入上一个链接的代码来创建认证令牌。但是当我调用API时 查看详情

如何让 Laravel 返回 JSON REST API 的自定义错误

】如何让Laravel返回JSONRESTAPI的自定义错误【英文标题】:HowcanImakeLaravelreturnacustomerrorforaJSONRESTAPI【发布时间】:2014-04-2007:21:20【问题描述】:我正在开发某种RESTfulAPI。当发生一些错误时,我会抛出一个App::abort($code,$message)错误。... 查看详情

用于 API 响应的 Laravel 自定义包装器

】用于API响应的Laravel自定义包装器【英文标题】:LaravelCustomWrapperforAPIResponses【发布时间】:2020-11-1418:46:34【问题描述】:我正在尝试在刚刚创建的Laravel中构建我的项目,以将其用作back-endAPI。我希望以官方网站上定义的JSON:API... 查看详情

错误 json 的自定义错误响应。点网核心 Web API

】错误json的自定义错误响应。点网核心WebAPI【英文标题】:Customerrorresponseforincorrectjson.DotnetCoreWebAPI【发布时间】:2021-09-2918:34:08【问题描述】:如果在DotnetCore中为WebApi提供了无效类型,是否有返回自定义错误响应的机制?例如... 查看详情

Web api dotnet core 中的 Api 版本控制错误的自定义错误响应

】Webapidotnetcore中的Api版本控制错误的自定义错误响应【英文标题】:CustomizederrorresponsesforApiVersioningerrorsinwebapidotnetcore【发布时间】:2018-08-1322:26:55【问题描述】:我正在为Webapi服务中的所有错误创建一个包库。该库将用于为BadR... 查看详情

Spring REST API,响应中的自定义实体字段

】SpringRESTAPI,响应中的自定义实体字段【英文标题】:SpringRESTAPI,customentityfieldsintheresponse【发布时间】:2021-12-2713:49:04【问题描述】:我正在使用RESTAPI(Java、SpringBoot、QueryDsl...),我想自定义结果中的字段。默认情况下,我获... 查看详情

Laravel 中间件 API 认证

】Laravel中间件API认证【英文标题】:LaravelMiddlewareAuthforAPI【发布时间】:2016-04-2713:28:21【问题描述】:我目前正在开发一个应用程序,它有一个我希望通过中间件访问的API,它将检查用户是否使用Laravel的默认Auth中间件和Tymone的... 查看详情

从 Laravel 发送自定义 500 http 响应

】从Laravel发送自定义500http响应【英文标题】:Sendcustom500httpresponsefromLaravel【发布时间】:2019-05-0111:05:48【问题描述】:我想发送一个状态为500的自定义http响应。尝试了以下代码,但它返回的状态为200。returnresponse()->json([\'code... 查看详情

Laravel 5 - 在 Rest API 服务器上自定义 JSON 响应

】Laravel5-在RestAPI服务器上自定义JSON响应【英文标题】:Laravel5-CustomizeJSONresponseonaRestAPIserver【发布时间】:2016-05-1609:52:25【问题描述】:我是Laravel的新手,我正在将我的应用程序从Slim框架迁移到Laravel5。谷歌搜索我没有找到太... 查看详情

为啥不调用基于 nib 的自定义表格单元格的 init 方法

】为啥不调用基于nib的自定义表格单元格的init方法【英文标题】:whydoestheinit-methodofacustomnib-basedtablecellnotgetcalled为什么不调用基于nib的自定义表格单元格的init方法【发布时间】:2011-08-0413:19:06【问题描述】:我有一个基于nib的... 查看详情

Laravel Restful API - 如何基于多个参数创建自定义查询

】LaravelRestfulAPI-如何基于多个参数创建自定义查询【英文标题】:LaravelRestfulAPI-Howtocreatecustomquerybasedonmultiplesparams【发布时间】:2015-09-0914:10:24【问题描述】:我是Laravel的新手。我用这条路线创建了一个RestfulAPI:(使用Laravel5)... 查看详情

ejabberd - 基于外部 REST API 的自定义花名册模块

】ejabberd-基于外部RESTAPI的自定义花名册模块【英文标题】:ejabberd-CustomrostermodulebasedonexternalRESTAPI【发布时间】:2020-08-1222:23:47【问题描述】:我正在浏览https://docs.ejabberd.im/developer/extending-ejabberd/architecture/,它讨论了通过RESTAPI... 查看详情

React + Laravel + Sanctum 用于 api 令牌认证(不是 cookie)

】React+Laravel+Sanctum用于api令牌认证(不是cookie)【英文标题】:React+Laravel+Sanctumforapitokenauthentication(NOTcookie)【发布时间】:2021-02-0510:16:56【问题描述】:我正在尝试使用中间件Sanctum让React和Laravel一起工作。我可以阅读许多尝试... 查看详情

laravel5.4建站06--api认证系统passport

介绍在Laravel中,实现基于传统表单的登陆和授权已经非常简单,但是如何满足API场景下的授权需求呢?在API场景里通常通过令牌来实现用户授权,而非维护请求之间的Session状态。现在Laravel项目中可以使用Passport轻而易举地实现A... 查看详情