对于我的应用程序,我有一个服务器端数据库,在其中存储用户及其数据。我想知道如何跟踪哪个用户拥有哪个UUID。我想确保只有具有自己唯一UUID的同一用户才能访问数据库中的数据。
最好的方法是什么?
在数据库中,创建一个表,其中每一行代表一个特定的用户。该表将永久分配UUID,以及姓名、电子邮件等。
一些数据库(如Postgres和H2)支持UUID作为内置数据类型。一些数据库证明了一种功能(可能作为插件)来生成UUID值。例如,Postgres的uuid-ossp插件。如果没有,您可以在Java生成UUID。
为用户创建帐户时,在该表中创建一行。当用户登录时,在此表中查找他们的凭据,检索他们以前分配的UUID。
在您的应用程序执行期间,将检索到的UUID作为java.util.UUID
对象保存在内存中。在基于Jakarta Servlet构建的Web应用程序中,保留其UUID的好地方是作为会话上的属性。请参阅将属性绑定到规范中的会话中。请参阅HttpSession#setAtcm
和getAtcm
。
当您在属于特定用户的其他表中写入行时,请为其UUID包含一列。将其UUID作为条件包含在查询中。
你可能想把多租户作为一个话题来研究。
我是JWT新手,我只是将其作为JSON中的java对象返回,并制作了一些过滤器,以便它可以像Spring Security中的session_id一样工作。 但是我不明白JWT是如何存储在客户端的,在服务器响应之后它会去哪里?它是否由coockies中的所有浏览器自动存储?所有浏览器都支持JWT吗? 我很感激你的回答。
客户端存储
我使用。NET Core2.0和ASP.NET Core2.0进行应用程序开发。“测试”应用程序是一个。NET核心控制台应用程序。我正在编写的核心代码是一个类库。一旦适当的测试。我选择这样做是因为我暂时不会使用它(它正在替换旧的ASPNET代码)。 无论如何,由于我必须处理各种服务的大量API密钥,所以我决定使用Microsoft Azure Key Vault来存储密钥。我有这一切设置,并理解这
我需要在谷歌云存储中“作为最终用户进行身份验证”(我代表我的应用程序的最终用户访问资源)。因为我的应用程序是用C++编写的。我编译了C++谷歌云存储客户端库。但是这里它声明它需要客户端的JSON文件来创建GCS::Client对象。我找不到任何其他方法来创建带有项目id、服务电子邮件、私钥、密钥名和桶名等信息的客户端(这些信息足以在python中进行身份验证)。有没有办法在谷歌云存储C++客户端库
web应用允许使用浏览器提供的API实现将数据存储在用户电脑上。这种客户端存储相当于赋予了web浏览器记忆功能。比方说,web应用就可以用这些方式来“记住”用户的偏好甚至是用户的所有状态信息,以便准确地“回忆”起用户上一次访问的位置。客户端存储遵循“同源策略”,因此不同站点的页面是无法读取对于存储的数据。而同一站点的不同的页面之间是可以互相共享存储数据的,它为我们提供了一种通信机制,例如一个表单的
我的SPA应用程序使用以下体系结构(来源): 这假设我的客户端应用程序知道刷新令牌,因为如果没有用户凭据(例如电子邮件/密码),我需要它来请求新的访问令牌。 我的问题:在客户端应用程序中,刷新令牌存储在哪里?关于这个话题有很多问题/答案,但是关于刷新标记,答案并不清楚。 访问令牌和刷新令牌不应存储在本地/会话存储器中,因为它们不是存放任何敏感数据的地方。因此,我会将访问令牌存储在一个cookie中