如何使用带有密码(和哈希)的OAuth2和带有JWT令牌的Bearer保护自己

时间:2019-12-28 18:10:36

标签: security authentication jwt

我以为我想出了如何通过基于JWT的oauth2 API使用正确的用户名和密码来保护自己的安全。

为了解释我所做的事情,我创建了一张图片,我认为可以逐步解释它:

Oauth2 JWT

客户端应用:

基本上,我可以创建客户端用户,这是我的意思,等等。Selenium代码,简单请求代码或可以共享给客户端的任何内容。在客户端内部,我有一个用JWT编码的用户名和密码(硬编码)。 (带有我的密码的jwt.io)

/令牌

这是我的服务器API,我在其中向请求API发送带有用户名和密码参数的POST请求,该参数由客户端应用程序编码。收到用户名和密码后,它将自动使用密码(在API服务器内部进行硬编码)进行解码,如果密码和用户名和密码有效,它将返回一个Bearer令牌,可用于以后使用。

验证:

要访问验证,您需要发送有效Bearer令牌的标头 Authorization ,此后,您将使用etc电子邮件发送参数,以检查用户MongoDB是否在我的数据库中或不是。

我的问题

我遇到的问题是,我觉得我不确定自己是否受到保护。

由于我已经硬编码了用户名和密码(这是唯一一个可以获取/令牌的唯一方式),因此可以用JWT对其进行解码(您可以通过JWT.IO查看用户名和密码)

下一个问题是,我的服务器api中有一个硬编码的密钥,这意味着无论何时设法获得用户名和密码的人,每次人发送到我的serverapi时,都很可能会获得一个有效的令牌,并且可以以某种方式操纵服务器api我添加了更多功能。

我的问题是

我现在不知道该怎么做,我需要以某种方式将我的信息隐藏在clientapp和/ token秘密代码中。因为无论谁获取我的用户名并通过,它都很有可能会自动使用正确的密码进行解码,因为我已经在服务器api中对密码进行了硬编码。

所以我现在在这里一直在思考如何才能通过此方法保护自己?

0 个答案:

没有答案