Laravel 通过生成的令牌进行身份验证,无需护照和 jwt

     2023-03-14     128

关键词:

【中文标题】Laravel 通过生成的令牌进行身份验证,无需护照和 jwt【英文标题】:Laravel auth by generated token without passport and jwt 【发布时间】:2018-05-28 10:12:09 【问题描述】:

我正在尝试通过在 laravel 5.5 中使用 md5 加密方法从登录用户的用户名中检查生成的令牌来执行 api-auth,并且不想将令牌保存到用户表中。当用户注销时,令牌将无效。 URL 将是这样的:

http://myserver.com/products?token=......

我该怎么做?

添加 - 这是第 44 届世界技能大赛的测试项目,以下来自测试项目文档:

    身份验证

一个。登录(v1/auth/login)

说明:客户端通过用户名和密码获取登录令牌

请求方式:POST

Header:header授权基础

请求的参数:

正文:

o 用户名

密码

响应结果:

如果成功,

o 标头:响应状态:200

身体:

 token`:授权令牌(在注销前有效)。令牌将由系统从登录的用户名使用 md5 加密方法生成

 角色(管理员/用户)

如果用户名/密码不正确或为空,

o 标头:响应状态:401

o 正文:消息:无效登录

b.注销 (v1/auth/logout?token=AUTHORIZATION_TOKEN)

说明:服务器使用户令牌无效

请求方法:GET

Header:header授权基础

响应结果:

如果成功,

o 标头:响应状态:200

身体:

消息:注销成功

如果未经授权的用户访问它,

数据:

o 消息:未经授权的用户

o 响应状态:401

    地点

一个。所有地点 (v1/place?token=AUTHORIZATION_TOKEN)

描述:供客户端列出数据库中的所有位置(包括用户的 基于频率索引的搜索历史)

请求方法:GET

Header:header授权基础

响应结果:

正文:

o 数组中的所有数据;由 id、name、latitude、longitude、x、y、image_path、description 组成。

o 响应状态:200

如果未经授权的用户访问它,

数据:

o 消息:未经授权的用户

o 响应状态:401

...

【问题讨论】:

md5 不是一种加密方法,这听起来非常不安全。 这只是第44届世界技能大赛的测试项目......不是真的。 我真的很想在伪代码中知道您要做什么...如果没有保存任何内容,您如何登录...您需要在 DB 中有一个令牌才能将其与用户用于登录的用户进行比较...您能更好地解释一下吗? 感谢lewis4u,用户将通过restful api登录,如果成功客户端将获取在服务器端生成的令牌并将其保存在客户端。用户注销后,令牌将失效。我认为必须在服务器端使用会话对象来存储令牌,或者? 【参考方案1】:

您可以创建自己的中间件,并在该中间件中为用户指定角色并使用您自己的令牌创建,或者您可以将 jwt 与它一起使用,jwt 更适合取消保存数据库中的令牌

【讨论】:

【参考方案2】:

该项目只是为了竞争-我解决了以下问题:

    用户通过向服务器发送用户名和密码登录;

    如果成功,服务器将用户名的md5代码保存到会话中,并将代码返回给客户端;

    客户端将md5代码作为token保存到本地存储,后续请求会发送给服务器;

    服务器验证令牌以决定客户端是否可以访问其资源。

就是这样!只为竞争,不为生产。

【讨论】:

【参考方案3】:

您可以创建令牌 api 并为其提供 cron 作业或会话,除此之外,您可以进行重置,而无需像 jwt 那样将其保存到数据库中,但您可以手动处理它并进行操作

【讨论】:

Laravel 4 使用令牌进行身份验证

】Laravel4使用令牌进行身份验证【英文标题】:Laravel4AuthWithToken【发布时间】:2014-09-2620:24:42【问题描述】:我问了一个使用Laravel4构建项目的正确方法的问题。我目前正在制作一个API(以支持移动应用程序)和一个Web应用程序... 查看详情

Laravel 护照授权令牌在生成新令牌时过期

】Laravel护照授权令牌在生成新令牌时过期【英文标题】:LaravelpassportAuthorizationtokenexpireongeneratingnewtoken【发布时间】:2018-04-1108:21:40【问题描述】:我正在使用laravel5.5和API路由的护照身份验证。我正在使用不记名令牌。问题是... 查看详情

Laravel - 使用会话令牌进行身份验证

】Laravel-使用会话令牌进行身份验证【英文标题】:Laravel-authenticatingwithsessiontoken【发布时间】:2014-06-0811:56:00【问题描述】:登录时,我以JSON形式返回用户对象+会话令牌,以便可以对连接到我的应用程序的移动设备进行身份验... 查看详情

如何通过邮递员在 Laravel 中验证 jwt 令牌

】如何通过邮递员在Laravel中验证jwt令牌【英文标题】:howtovalidatejwttokeninLaravelthorughpostman【发布时间】:2020-09-0311:08:13【问题描述】:我是Laravel的初学者。我已经成功生成了一个jwt令牌,我想将此令牌发送到另一个API,该API将... 查看详情

Laravel Passport API:检索经过身份验证的令牌

】LaravelPassportAPI:检索经过身份验证的令牌【英文标题】:LaravelPassportAPI:RetrieveAuthenticatedToken【发布时间】:2018-03-2206:28:30【问题描述】:情况我正在使用LaravelPassportAPI通过个人访问令牌在Laravel和外部“代理”之间进行通信:ht... 查看详情

没有记住我令牌的 Laravel 身份验证

】没有记住我令牌的Laravel身份验证【英文标题】:Laravelauthenticationwithoutremembermetoken【发布时间】:2014-12-1919:50:37【问题描述】:我正在使用Laravel4.2的身份验证机制,并试图弄清楚“记住我”cookie令牌的设置时间和方式。由于某... 查看详情

基于令牌的身份验证的安全性

...基于令牌的身份验证的理解是,在进行身份验证时(可能通过ssl),令牌会被传递给用户,以便即时进行廉价的用户验证。一种实现方式是生成一个cookie,该cookie传递给用户以进行会话管理。但是,我的理解是,基于令牌的身份... 查看详情

使用 JWT 进行 laravel 身份验证的 Satellizer 警告“期待一个名为 token 的令牌”

】使用JWT进行laravel身份验证的Satellizer警告“期待一个名为token的令牌”【英文标题】:SatellizerWarning"Expectingatokennamedtoken"forlaravelauthenticationwithJWT【发布时间】:2016-02-2105:26:42【问题描述】:我正在关注本教程-https://www.cod... 查看详情

无法使用跨不同机器生成的访问令牌进行身份验证

】无法使用跨不同机器生成的访问令牌进行身份验证【英文标题】:NotabletoAuthenticateusingaccesstokengeneratedacrossdifferentMachines【发布时间】:2019-08-2704:16:18【问题描述】:我正在尝试使用访问令牌对AzureSQL数据库进行身份验证,问题... 查看详情

通过令牌进行身份验证,如果令牌失败,则通过会话进行身份验证,使用 Passport?

】通过令牌进行身份验证,如果令牌失败,则通过会话进行身份验证,使用Passport?【英文标题】:AuthenticatebyToken,thenbySessionifTokenfails,usingPassport?【发布时间】:2014-10-3013:44:00【问题描述】:我正在努力将具有NodeJS+Express后端的... 查看详情

Web API 中基于令牌的身份验证,无需任何用户界面

...描述】:我正在用ASP.NetWebAPI开发一个RESTAPI。我的API只能通过非基于浏览器的客户端访问。我需要为我的API实现安全性,所以我决定使用基于令牌的身份验证。我对基于令牌的身份验证有相当了解, 查看详情

使用 JWT Lumen 进行身份验证,无需密码

...2017-01-2604:50:30【问题描述】:我在lumen中使用JWT,无法仅通过电子邮件获取没有密码的令牌,我正在使用此代码形式stackoverflow--$user=User::where(\'email\',\'=\',\'user2@gmail.com\')->f 查看详情

Laravel 简单的自定义授权,无需令牌或数据库

】Laravel简单的自定义授权,无需令牌或数据库【英文标题】:Laravelsimplecustomauthorizationwithouttokenordatabase【发布时间】:2018-05-0616:25:07【问题描述】:对我来说,为这种情况进行自定义身份验证的最简单方法是什么我有登录表单... 查看详情

Laravel Inertia (Vue) - 无需重定向即可进行身份验证

】LaravelInertia(Vue)-无需重定向即可进行身份验证【英文标题】:LaravelInertia(Vue)-AuthenticatewithoutRedirect【发布时间】:2020-10-2722:57:45【问题描述】:我正在向基本Laravel登录路径发送普通Inertia帖子:submit()this.$inertia.post("/login",email:thi... 查看详情

使用 Passport 和 Laravel 进行身份验证时返回访问令牌和用户

】使用Passport和Laravel进行身份验证时返回访问令牌和用户【英文标题】:ReturntheaccesstokenandtheuserwhenauthenticatingusingPassportandLaravel【发布时间】:2017-09-1018:06:46【问题描述】:我正在使用Laravel5.4和Passport创建一个API。API授权使用密... 查看详情

使用 VueX 和 Laravel Passport 进行身份验证

】使用VueX和LaravelPassport进行身份验证【英文标题】:AuthenticationwithVueXandLaravelPassport【发布时间】:2019-12-2014:08:23【问题描述】:我目前正在使用Vue(和VueX)和LaravelPassport。我的注册页面工作正常,现在我已经进入我的登录页面... 查看详情

laravel jwtAuth 验证凭据

】laraveljwtAuth验证凭据【英文标题】:laraveljwtAuthvalidatecredentials【发布时间】:2016-09-0108:28:51【问题描述】:我正在laravel中开发API并尝试使用jwtAuth实现令牌库身份验证,但我无法理解的是如何使用mysql表“客户”进行身份验证并... 查看详情

Laravel 护照刷新令牌

】Laravel护照刷新令牌【英文标题】:Laravelpassportrefreshtoken【发布时间】:2019-05-1510:18:56【问题描述】:我正在使用Laravel5.5版,使用Passport进行身份验证。我已成功创建令牌并可以使用auth:api中间件访问它。但每当用户登录系统时... 查看详情