如何将登录的用户链接到他们的数据,如何在MySQL表中检索和更新他们

凯文·内特

这是我的网络应用程序的“用户设置”页面我已将其简化到最低程度,以更好地突出问题。

为了验证我使用Auth0的用户,我想使用从属声明user_id在MySQL数据库中标识用户以进行更新并检索用户的信息。不幸的user_id是,这对于每个提供商都是不同的,例如,如果同一用户通过Auth0登录具有相同的电子邮件,则他得到一个,user_id如果他通过google登录,则他得到另一个。

我考虑过使用电子邮件将登录的用户链接到他的信息。问题出在我的API中。更改之前,每次创建新的ID均为“ localhost:8080 / api / users /:id ”,在任何情况下都无法恢复单个用户的数据。现在,我已将“ id替换为“ email ”,我的API也已在“ localhost:8080 / api / users /:[email protected] ”中更改
之前:
在此处输入图片说明

之后:简单在此处输入图片说明来说,客户端上的请求网址也已更改。

我想确保GET和PUT请求是基于登录用户的电子邮件发出的,而无需修改整个后端。

弗朗切斯科·埃斯波斯托(Francesco Esposto)

听起来好像您对用户进行身份验证的方式有问题。如果您有多种方法来验证用户身份,则这些方法需要与用户一对多关联。例如,每个用户都有一个auth-methods列表,并且每进行一次身份验证,您都要检查身份验证方法表并找到它映射到的一个用户。

我不确定您是自己执行此操作还是不确定所使用的框架是否正在处理该操作,但这听起来好像您需要更改模型以允许单个帐户使用多种Auth方法。

另外,您可以使用电子邮件,但这也是唯一标识用户的“旧”方法,如今几乎每个人都有多个活动的电子邮件帐户,因此您还应该与用户建立一对多的电子邮件联系。如果用户的Facebook和Google帐户拥有不同的电子邮件帐户,该怎么办?

在此处查看帐户链接:https : //auth0.com/docs/users/user-account-linking

信任外部提供商对电子邮件属于谁是真实的是危险的。如果我在其中一个提供商上使用他人的电子邮件开设了一个新帐户怎么办?然后,我可以在您的应用程序中登录该用户帐户,这是一个很大的安全风险。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将每个用户路由/链接到他们自己的数据?

如何在Firebase中将每个用户链接到他们的数据?

如何将新创建的用户重定向到他们的“已登录”主页?

如何将管理员和用户重定向到他们的页面?

如何将仅sftp的SSH用户chroot到他们的家中?

如何将多种类型的用户重定向到他们各自的活动?

如何抓取YouTube频道创建者并链接到他们的频道?

如何将登录(经过身份验证的)用户分配给他们提交的表单数据?

限制用户只看到他们的数据 [Laravel]

如何使用 Ajax 和 Laravel 将自动完成数据提取到他们受尊重的元素中?

网站如何在没有用户加载时间的情况下将近乎即时的保存到他们的数据库中?

如何通过 powershell/cmd Windows Server 2012 R2 创建用户组并将组策略链接到他们

如何在 Django 中创建多个用户而不让他们访问彼此的数据

如何将县名转换为 fips 代码?(将县名映射到他们的 fips)

RAILS - 如何允许用户将音乐/Spotify 播放列表添加到他们的个人页面?

如何将 Future 方法从 Stateful 小部件移动到他们自己的类 Flutter

如何正确提示用户输入,直到他们给出有效的响应

如何提示用户,直到他们输入有效的整数?

SQL语句:如何检索和显示每个用户以及他们购买的许多商品

考虑到他们的API速率限制,我如何在一周内收集GitHub用户的地理位置数据?

如果文章是他们自己的,如何只允许用户看到编辑和删除链接?

我如何允许用户将字符串输入到数组中,直到他们按Enter键而不输入任何文本?

个人计算机被黑客入侵:如何阻止该用户再次登录?我如何找到他们如何登录?

我如何将这些提交从我的主分支拉到他们自己的分支中,以便我以后可以合并它们?

如何将特定于客户的登录名添加到我的网站,以便他们只能访问他们可以看到的页面

如何将每个Firebase用户与他们自己的recycler相关联查看数据

如何在 git 中接受他们的更改

如何知道用户最近是否更新了他们的Chrome扩展程序,以便我提醒他们

在设计中,如何将用户重定向回他们来自的非应用网址