1

关于 Angular 6 的登录步骤:

如果我这样做如下:

  1. 将用户名和密码发送给 PHP;
  2. 服务器代码检查用户是否存在;
  3. 如果确实存在,我们将再次向 Angular 发送一个 json 数组,其中包含usernameuser role
  4. 将它们保存在本地存储中
  5. 当用户尝试浏览应用程序时,我们将使用canActivate警卫服务检查这些凭据。

我们是否也需要使用 JWT 来设置令牌还是没有必要?

4

3 回答 3

1

使用 JWT 不是强制性的,如果您的应用程序需要额外的关键任务安全性,请使用它。

使用 JWT 可以保护数据在被服务器接收之前免受不必要的修改。不需要的修改可能是由截取数据的人或用户自己进行的。

JWT 只是将数据与签名一起以编码格式发送到服务器。因此,该修改变得有点困难,或者即使进行了修改,由于签名验证失败,服务器也不接受数据。

通过的示例 JWT 数据:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9           // header
.eyJrZXkiOiJ2YWwiLCJpYXQiOjE0MjI2MDU0NDV9      // payload
.eUiabuiKv-8PYk2AkGY4Fb5KMZeorYBLw261JPQD5lM

示例纯/json数据

{
  "username": "hello",
  "full_name" : "Jason Bourne"
}

在这里,您可以轻松查看和修改传递的数据,而在 JWT 中则不能。

于 2018-07-16T06:53:30.680 回答
1

是的!你需要,因为:

基于令牌的身份验证系统允许用户输入他们的用户名和密码以获得允许他们获取特定资源的令牌 - 而无需在每次请求时输入他们的用户名和密码。获得令牌后,用户可以使用令牌在设定的时间段内访问特定资源。

JWT(读作“jot”)是一个基于令牌的身份验证系统。它是一种紧凑的、URL 安全的方式来表示要在两方之间传输的声明。JWT 中的声明被编码为使用 JSON Web 签名进行数字签名的 JSON 对象。JWT 是一个自包含的令牌,它具有身份验证信息、过期时间信息和其他用户定义的数字签名声明。

资料来源:JWT(JSON Web 令牌)优于会话 Cookie

更多信息:智威汤逊

简介:这个链接

实现示例:php-authorization-jwt-json-web-tokens

于 2018-07-16T06:51:10.203 回答
0

这不是必需的,但可能会派上用场。

如果您有单个应用程序在单个 Web 服务器上运行,您可以JWT完全跳过并仅使用 cookie 身份验证机制,以便对 Web 服务器的每个 JavaScript 调用都包含您的身份验证 cookie,以便您的后端可以使用正确的用户数据进行响应。

当您涉及更多服务器时,JWT 会派上用场。将 SSO 服务视为多个相关站点之间的粘合剂,例如 StackOverflow 和其他站点。您只需传递 JWT 令牌,每个服务器都可以安全地假定数据没有被篡改,并可以立即访问用户的身份、一些基本细节等。

于 2018-07-16T07:16:38.060 回答