jwt api 身份验证如何工作(使用 dingo-laravel)

     2023-03-10     209

关键词:

【中文标题】jwt api 身份验证如何工作(使用 dingo-laravel)【英文标题】:How does jwt api authentication work (with dingo-laravel) 【发布时间】:2017-01-16 04:01:11 【问题描述】:

我知道这个问题有点宽泛,但让我缩小范围。我已经用 laravel 建立了一个小型社交网络,我期待用 dingo 构建 api 我的问题是我想知道使用我的 api(开发人员身份验证)的开发人员,这让我感到困惑,因为使用 api 的开发人员必须对我网站的用户进行身份验证以发布或获取有关他们的信息...我想知道此身份验证应该如何工作。

假设密码为“dev123”的开发人员 dev@gmail.com 想要获取特定用户的帖子,帖子的网址是 mydomain.com/api/users/445/posts/4,用户 445 有电子邮件 user@ gmail.com 和密码“user123”。如何使用 jwt 管理处理开发人员身份验证和用户身份验证。我已经查看了一些关于 jwt 的教程,但对正在验证的是 api 用户(开发人员)还是平台用户感到困惑。在此先感谢,如果有的话,我将不胜感激。

【问题讨论】:

【参考方案1】:

如何使用 jwt 管理处理开发人员身份验证和用户身份验证。

每台设备上的每个用户和每个开发人员在通过您需要选择的方法登录后都会收到自己的不记名令牌。作为不记名令牌的一部分,您可以对自定义数据进行编码,例如用户 ID 或用户角色(或可能更好的哈希值)。

从令牌中提取此信息,您可以使用它来根据用户 ID、角色或您选择的任何内容授予对特定资源的访问权限。

请参阅https://stormpath.com/blog/jwt-the-right-way 了解您可以委托 JWT 处理的“声明”示例,例如:

//header

    "alg": "HS256", //denotes the algorithm (shorthand alg) used for the  signature is HMAC SHA-256
    "typ": "JWT" //denotes the type (shorthand typ) of token this is


//claims

    "sub": "tom@stormpath.com",
    "name": "Tom Abbott",
    "role": "user"

【讨论】:

谢谢,但我不明白当你说通过我需要选择的方法时。我只在 api 请求中看到用户声明,这是否意味着请求中不需要开发者信息和令牌? 如果您对开发人员进行身份验证(即开发人员登录),您可以给他一个角色为“开发人员”的令牌。然后,当请求带有包含“开发者”角色的有效令牌时,您可以确定它是开发者并授权访问需要开发者或所有者访问的资源。

如何在 vue 中存储、管理 REST API JWT 身份验证令牌?

】如何在vue中存储、管理RESTAPIJWT身份验证令牌?【英文标题】:Howtostore,manageRESTAPIJWTauthenticationtokeninvue?【发布时间】:2019-11-2905:40:44【问题描述】:我是一个菜鸟,使用vue.js和节点身份验证api,该api工作正常并在响应中提供jwt... 查看详情

Laravel 5.4 Dingo/JWT API:无法验证有效令牌

】Laravel5.4Dingo/JWTAPI:无法验证有效令牌【英文标题】:Laravel5.4Dingo/JWTAPI:Failedtoauthenticateforvalidtoken【发布时间】:2017-11-1312:40:16【问题描述】:我已经使用Laravel5.4实现了DingoRESTAPI。我能够从服务器获取令牌。以及服务器成功接... 查看详情

Ktor websockets 身份验证

】Ktorwebsockets身份验证【英文标题】:Ktorwebsocketsauthentication【发布时间】:2021-12-1101:50:53【问题描述】:问题与使用JWT的WebSocket身份验证有关。我知道如何使用路由(HTTP请求)创建常规API调用,使用JWT对其进行身份验证并且工... 查看详情

没有用户模型的 Laravel JWT 身份验证

】没有用户模型的LaravelJWT身份验证【英文标题】:LaravelJWTAuthenticationwithoutUserModel【发布时间】:2018-06-0815:54:47【问题描述】:我正在尝试为同一个项目中的移动用户构建一个laravel应用程序和API。主网站实际上是网站的后端,需... 查看详情

如何使用 Postman 测试 jwt 身份验证

】如何使用Postman测试jwt身份验证【英文标题】:howtotestjwtauthenticationusingPostman【发布时间】:2021-06-1906:57:43【问题描述】:我有一个API,我为身份验证实现了jwt,这是我的身份验证:[Route("api/[controller]")][ApiController]publicclassAuthCon... 查看详情

Dingo Api Laravel 5.1 上的 JWT Auth 配置。*

...困惑,如果我需要做更多的事情,例如我想要对用户进行身份验证以便用户无法访问某些路线无需先登录。我在api.php上修改了这 查看详情

如何在 lumen 5.8.* 中使用 dingo 修复实现 jwt?目标 [Dingo\Api\Contract\Routing\Adapter] 不可实例化

】如何在lumen5.8.*中使用dingo修复实现jwt?目标[Dingo\\\\Api\\\\Contract\\\\Routing\\\\Adapter]不可实例化【英文标题】:Howtofiximplementationjwtwithdingoinlumen5.8.*?Target[Dingo\\Api\\Contract\\Routing\\Adapter]isnotinstantiable如何在lumen5.8.*中使用di 查看详情

如何测试使用 JWT 身份验证的节点 API(使用用户登录获取令牌)

】如何测试使用JWT身份验证的节点API(使用用户登录获取令牌)【英文标题】:HowtotestaNodeAPIthatusesJWTAuthentication(withUserlogintogettoken)【发布时间】:2016-09-1401:17:48【问题描述】:TL;DR-在使用JWT进行身份验证且令牌本身仅授予用户... 查看详情

如何使用 JWT 和 Passport 正确使用 nodeJs API 的身份验证?

】如何使用JWT和Passport正确使用nodeJsAPI的身份验证?【英文标题】:HowtocorrectlyusetheauthenticationfornodeJsAPIusingJWTandPassport?【发布时间】:2017-10-2521:03:40【问题描述】:我正在使用JWT-simple来验证我的快速路线。服务器端:varjwt=require(... 查看详情

Angular:如何通过 API 调用使用 JWT 身份验证

】Angular:如何通过API调用使用JWT身份验证【英文标题】:Angular:HowtouseJWTAuthenticationwithanAPIcall【发布时间】:2018-12-2808:15:07【问题描述】:我正在关注this的文章。作者正在使用fake-backend.ts拦截一个以/api/authenticate结尾的api调用,... 查看详情

如何使用葡萄 gem 和 jwt 作为身份验证构建第三方 API

】如何使用葡萄gem和jwt作为身份验证构建第三方API【英文标题】:HowtobuildthirdpartyAPI\'susinggrapegemandjwtasauthentication【发布时间】:2016-02-2100:08:28【问题描述】:我有一个为android和ios应用程序构建的带有api的web应用程序。使用JWT令... 查看详情

Laravel Dingo API 包的 JWT-Auth 无法登录

...Aut,但我被困在用户登录部分,我已经检查了官方文档的身份验证但无法弄清楚,这是我到目前为止所做的.保护路线Route::api([\'versi 查看详情

如何在 api 请求标头中插入 api 身份验证所需的 jwt 令牌?

】如何在api请求标头中插入api身份验证所需的jwt令牌?【英文标题】:HowcanIinsertjwttokenneededforapiauthenticationinapirequestheader?【发布时间】:2021-10-1706:59:50【问题描述】:我想访问在数据库中发布一些数据的api。对于api身份验证,我... 查看详情

微服务 - 如何使用 JWT 对单独的 API 微服务进行身份验证

】微服务-如何使用JWT对单独的API微服务进行身份验证【英文标题】:Microservices-HowtoauthenticateseparateAPIMicroservicewithJWT【发布时间】:2020-05-0216:00:52【问题描述】:我正在尝试在springboot(java)中构建一个微服务。我正在使用Java中的... 查看详情

使用 JWT 的 API 客户端身份验证 — Node/TypeScript

】使用JWT的API客户端身份验证—Node/TypeScript【英文标题】:API-clientauthenticationswithJWT—Node/TypeScript【发布时间】:2022-01-1319:23:17【问题描述】:我有一个使用node和TypeScript开发的API和Web客户端。用户可以使用JWT进行身份验证。该... 查看详情

Node.js - JWT、API:如何实现多个 Passport.js 身份验证中间件?

】Node.js-JWT、API:如何实现多个Passport.js身份验证中间件?【英文标题】:Node.js-JWT,API:HowToImplementMultiplePassport.jsAuthenticationMiddleware?【发布时间】:2020-03-2313:57:47【问题描述】:所以我正在尝试为一个应用构建两个JWT身份验证系统... 查看详情

如何跨不同 API 对 JSON Web 令牌 (JWT) 进行身份验证?

】如何跨不同API对JSONWeb令牌(JWT)进行身份验证?【英文标题】:HowtoauthenticateJSONwebtokens(JWT)acrossdifferentAPIs?【发布时间】:2019-08-1901:34:19【问题描述】:我创建了一个基于PHPSlim框架的RestAPI,它使用JSONWeb令牌(JWT)来验证和授权访问... 查看详情

使用内置的 Laravel 5.2 身份验证并加载 SPA,然后为所有其他路由加载 Dingo API

】使用内置的Laravel5.2身份验证并加载SPA,然后为所有其他路由加载DingoAPI【英文标题】:UsebuiltinLaravel5.2authandloadSPAthenDingoAPIforallotherroutes【发布时间】:2016-06-2519:16:33【问题描述】:我正在尝试确定是否可以使用带有刀片/视图... 查看详情