首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Angular(客户端)中实现JWT身份验证而不使用本地存储的最佳方法?

在Angular中实现JWT身份验证而不使用本地存储的最佳方法是通过将JWT令牌存储在HTTP请求的Authorization头中。

以下是步骤:

  1. 在Angular项目中引入jsonwebtoken库,该库用于生成和验证JWT令牌。
  2. 在用户登录成功后,服务器会返回一个包含JWT令牌的响应。将该令牌存储在客户端的内存中,而不是本地存储中。可以使用Angular的服务来存储令牌,并在应用的不同组件中共享。
  3. 在发送HTTP请求时,将JWT令牌作为Authorization头的值附加到请求中。可以使用Angular的拦截器来修改每个请求,添加Authorization头。

以下是实现的代码示例:

  1. 创建一个AuthService服务来处理身份验证逻辑。
代码语言:txt
复制
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class AuthService {
  private token: string;

  constructor(private http: HttpClient) { }

  public login(username: string, password: string): Observable<any> {
    // 发送登录请求,获取JWT令牌
    return this.http.post<any>('api/login', { username, password });
  }

  public setToken(token: string): void {
    this.token = token;
  }

  public getToken(): string {
    return this.token;
  }

  public isAuthenticated(): boolean {
    // 检查JWT令牌是否存在并且有效
    const token = this.getToken();
    // 进行令牌验证的逻辑
    return token ? true : false;
  }

  public logout(): void {
    // 清除令牌
    this.token = null;
  }
}
  1. 创建一个AuthInterceptor拦截器来添加Authorization头。
代码语言:txt
复制
import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { AuthService } from './auth.service';

@Injectable()
export class AuthInterceptor implements HttpInterceptor {
  constructor(private authService: AuthService) {}

  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    const token = this.authService.getToken();
    if (token) {
      // 将JWT令牌添加到请求的Authorization头中
      request = request.clone({
        setHeaders: {
          Authorization: `Bearer ${token}`
        }
      });
    }
    return next.handle(request);
  }
}
  1. 在AppModule中配置AuthInterceptor拦截器。
代码语言:txt
复制
import { NgModule } from '@angular/core';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { AuthInterceptor } from './auth.interceptor';

@NgModule({
  imports: [HttpClientModule],
  providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: AuthInterceptor,
      multi: true
    }
  ]
})
export class AppModule { }

这样,每个发送的HTTP请求都会带有JWT令牌的Authorization头,从而实现了JWT身份验证而不使用本地存储。

请注意,这只是一种实现方式,具体的实现可能根据项目需求和服务器端的身份验证逻辑有所不同。

相关搜索:在httpOnly cookie中存储JWT的最佳方法在http客户端类中存储jwt令牌的最佳方式在客户端Angular2 / Angular4中存储Laravel Passport令牌的最佳方法在angular中存储和使用API的最佳方式是什么在Angular应用程序中存储身份验证令牌的替代方法使用use effect in React Context检查本地存储中是否已有令牌的最佳方法在Go中添加或删除切片元素而不破坏元素顺序的最佳方法使用MVC在ASP.NET中实现API的最佳方法是什么?在python中实现堆栈和队列的最佳方式是什么,而不使用任何模块?在ASP.NET中为命中计数器实现存储的最佳方法是什么?在Angular 7中运行另一个组件的方法而不刷新当前页面?我可以在子类中使用超类中的方法而不覆盖它吗?如何使用Angular typescript中存储在本地机器上的csv文件的数据创建变量?在构建客户端应用时,在本地存储的key中使用prefix有什么好处?(尤其是在angularjs / angular应用程序中)使用Universe数据库在ASP.NET MVC中处理身份验证的最佳方法是什么?在使用.net web API的angular应用程序中对用户进行身份验证的最佳方式是什么?在Angular应用程序中存储数据或使用maxlength调用后端的更好方法在ASP.NET Core5中使用存储过程和表值函数的最佳方法在python中,连接两个float64列而不转换为字符串的最佳方法是什么?在Java中实现质数查找算法的最佳方法是哪种?我们如何制作库类并在Java中使用呢?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JSON Web Token(JWT)教程:一个基于Laravel和AngularJS的例子

我们的后端更多地关注业务逻辑和数据,而演示逻辑被专门转移到前端或移动应用。这些变化导致了在现代应用程序中实现身份验证的新方式。 认证是任何Web应用程序中最重要的部分之一。...由于HTTP协议是无状态的,因此需要有一种存储用户信息的机制,以及登录后每个后续请求对用户进行身份验证的方法。大多数网站使用Cookie来存储用户的会话ID(session ID)。...这可以在内存或数据库中完成。如果我们有一个分布式系统,我们必须确保我们使用一个不耦合到应用服务器的单独的会话存储。...) 在本教程中,我将演示如何使用两个流行的Web技术实现JSON Web Token的基本身份验证:Laravel 5用于后端代码,AngularJS用于前端单页面应用程序(SPA)示例。...这是我们的拦截器的一个例子,它们在浏览器的本地存储中可用时注入一个token。

30.6K10

Node.js-具有示例API的基于角色的授权教程

该示例基于我最近发布的另一篇教程,该教程侧重于Node.js中的JWT身份验证,此版本已扩展为在JWT身份验证的基础上包括基于角色的授权/访问控制。...sub属性是subject的缩写,是用于在令牌中存储项目id的标准JWT属性。 第二个中间件功能根据其角色检查经过身份验证的用户是否有权访问请求的路由。如果验证或授权失败,则返回401未经授权响应。...Node.js Auth用户服务 路径:/users/user.service.js 用户服务包含用于验证用户凭据并返回JWT令牌的方法,用于在应用程序中获取所有用户的方法以及用于通过id获取单个用户的方法...我在示例中对用户数组进行了硬编码,以使其始终专注于身份验证和基于角色的授权,但是在生产应用程序中,建议使用哈希密码将用户记录存储在数据库中。...在文件顶部附近(在硬编码用户下方),我已经导出了服务方法的定义,因此可以一目了然地查看所有方法,在文件的其余部分包含该方法的实现。

5.7K10
  • 5步实现军用级API安全

    客户端使用客户端证书在授权服务器上进行身份验证,并获取绑定到客户端证书的访问令牌。在后续 API 请求中,客户端必须在每次 API 请求中发送相同的客户端证书以及访问令牌。...在每次 API 请求中,客户端都必须发送一个新的证明 JWT,该 JWT 由相同的私钥签名。...这意味着用户在本地保留其私钥,而服务器只处理公钥。这种类型的解决方案具有防网络钓鱼功能,并且不需要服务器存储用户机密。...应用程序可以加密签名一个质询来证明其身份,并从云服务接收 JWT 响应。此 JWT 可以在代码流开始时发送到授权服务器,以启用 强化的移动流。 身份验证将继续需要随着时间的推移而强化。...这些模式可以在用户身份验证和 API 访问期间应用。基于策略的方法可能是实现这种类型的动态授权要求的首选方式。

    14410

    JWT-JSON Web令牌的深入介绍

    有一天,我们想为移动(本地应用程序)实现系统,并与当前的Web应用程序使用同一数据库。我们应该做什么?...还是应该为Native App用户编写一个身份验证模块? 这就是基于令牌的身份验证诞生的原因。 使用此方法,服务器会将用户登录状态编码为JSON Web令牌(JWT),并将其发送给客户端。...服务器如何从客户端验证JWT 在上一节中,我们使用Secret字符串创建签名。 此Secret字符串对于每个应用都是唯一的,并且必须安全地存储在服务器端。...此外,将用户的令牌保存在服务器上还将使系统的强制注销功能受益。 结论 永远不会有最佳的身份验证方法。 这取决于用例和实现方式。...但是,对于要在许多平台上扩展为大量用户的应用程序,首选JWT身份验证,因为令牌将存储在客户端。 祝您学习愉快,再见!

    2.4K30

    JWT 也不是万能的呀,入坑需谨慎!

    本文将从 JWT 的基本原理出发,分析在使用 JWT 构建基于 Token 的身份验证系统时需要谨慎对待的细节。 任何技术框架都有自身的局限性,不可能一劳永逸,JWT 也不例外。...4-2、生成JWT 在工程中新建 JJWTUitls.java 工具类,使用 jjwt 提供的方法实现 JWT 的生成,实现细节如下: ?...5、 JWT 工作流程 在身份验证中,当用户成功登录系统时,授权服务器将会把 JSON Web Token 返回给客户端,用户需要将此凭证信息存储在本地(cookie或浏览器缓存)。...为了防止用户 JWT 令牌泄露而威胁系统安全,你可以在以下几个方面完善系统功能: 清除已泄露的令牌:此方案最直接,也容易实现,你需将 JWT 令牌在服务端也存储一份,若发现有异常的令牌存在,则从服务端令牌列表中将此异常令牌清除...客户端环境检查:对于一些移动端应用来说,可以将用户信息与设备(手机,平板)的机器码进行绑定,并存储于服务端中,当客户端发起请求时,可以先校验客户端的机器码与服务端的是否匹配,如果不匹配,则视为非法请求,

    14.6K73

    JWT不是万能的,入坑需谨慎!

    本文将从 JWT 的基本原理出发,分析在使用 JWT 构建基于 Token 的身份验证系统时需要谨慎对待的细节。 任何技术框架都有自身的局限性,不可能一劳永逸,JWT 也不例外。...4-2、生成JWT 在工程中新建 JJWTUitls.java 工具类,使用 jjwt 提供的方法实现 JWT 的生成,实现细节如下: ?...5、 JWT 工作流程 在身份验证中,当用户成功登录系统时,授权服务器将会把 JSON Web Token 返回给客户端,用户需要将此凭证信息存储在本地(cookie或浏览器缓存)。...为了防止用户 JWT 令牌泄露而威胁系统安全,你可以在以下几个方面完善系统功能: 清除已泄露的令牌:此方案最直接,也容易实现,你需将 JWT 令牌在服务端也存储一份,若发现有异常的令牌存在,则从服务端令牌列表中将此异常令牌清除...客户端环境检查:对于一些移动端应用来说,可以将用户信息与设备(手机,平板)的机器码进行绑定,并存储于服务端中,当客户端发起请求时,可以先校验客户端的机器码与服务端的是否匹配,如果不匹配,则视为非法请求,

    2.9K20

    JWT-JSON WEB TOKEN使用详解及注意事项

    4-2、生成JWT 在工程中新建JJWTUitls.java工具类,使用jjwt提供的方法实现JWT的生成,实现细节如下: ?...4-4、测试JJWT 最后,在工程中新建一个JavaJWT.java 类,并在main方法中检验JJWTUtils工具类中生成和解析JWT两个方法是否有效。实现细节如下: ?...5、 JWT 工作流程 在身份验证中,当用户成功登录系统时,授权服务器将会把JWT返回给客户端,用户需要将此凭证信息存储在本地(cookie或浏览器缓存)。...为了防止用户JWT令牌泄露而威胁系统安全,可以在以下方面完善系统功能: 清除已泄露的令牌:最直接也容易实现。将JWT令牌在服务端也存储一份,若发现有异常的令牌存在,则从服务端将此异常令牌清除。...客户端环境检查:对于一些移动端应用来说,可以将用户信息与设备(手机,平板)的机器码进行绑定,并存储于服务端中,当客户端发起请求时,可以先校验客户端的机器码与服务端的是否匹配,如果不匹配,则视为非法请求,

    1.7K10

    JSON Web Token 长文扫盲帖

    5.4 常用的 JWT 的身份验证架构 通常基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录,常用身份验证的架构流程如下: ?...由于 JWT 令牌存储于客户端中,一旦客户端存储的令牌发生泄露事件或者被攻击,攻击者就可以轻而易举的伪造用户身份去 修改/删除 系统资源。...客户端环境检查:对于一些移动端应用来说,可以将用户信息与设备(手机,平板)的机器码进行绑定,并存储于服务端中,当客户端发起请求时,可以先校验客户端的机器码与服务端的是否匹配,如果不匹配,则视为非法请求,...最佳实践 当你充分了解了 JWT 的技术细节、处理的场景,那么获得一套关于 JWT 使用的最佳实践,也就水到渠成: 在使用 JWT 的时候一定要注意别携带敏感信息,令牌别暴露了 在 Web 应用中,别把...彻底理解JWT认证:言简意赅的总结 node使用jwt来创建token和解析token:详细用本地 node.js 方法来演示 Encode or Decode JWTs:在线工具网站,自动生成对应编程语言的代码

    1.6K32

    JWT VS Session

    JWT工作原理 在身份验证中,当用户使用其凭据成功登录时,将返回JSON WEB TOKEN,该token必须在本地保存(通常在本地存储中,但也可以使用Cookie),而不是像传统方法那样,在服务器创建...解决这个挑战的另一种方法是使用 sticky session。你还可以将session存储在磁盘上,使你的应用程序在云环境中轻松扩展。这类解决方法在现代大型应用中并没有真正发挥作用。...2.安全性:JWT签名旨在防止在客户端被篡改,但也可以对其进行加密,以确保token携带的claim 非常安全。JWT主要是直接存储在web存储(本地/session存储)或cookies中。...使用JWTs对Auth0进行身份验证 在Auth0中,我们将JWTs作为身份验证过程的结果发布。当用户使用Auth0登录时,将创建一个JWT,签名后将其发送给用户。...我们还使用JWT在Auth0 API v2中执行身份验证和授权,取代传统不透明API密钥的使用。

    2.1K60

    JWT在Node.js中的最佳实践

    同时,JWT也可用于在不同的服务之间安全地交换信息。二、JWT在Node.js中的实现步骤1....而RSA(如RS256)是一种非对称加密算法,它使用公钥和私钥对。服务器使用私钥进行签名,客户端使用公钥进行验证。这种方式在安全性上有更大的保障,但是算法复杂度更高,计算开销也相对较大。...客户端存储方式应避免在客户端直接存储JWT的明文。可以将JWT存储在浏览器的本地存储(localStorage)或者会话存储(sessionStorage)中,但这种方式存在一定的风险。...JWT具有较短的有效期,而Refresh Token具有较长的有效期。2. 实现过程在JWT即将过期时,客户端向服务器发送包含Refresh Token的请求。...在API中的应用示例以下是一个简单的Node.js中使用JWT实现API身份验证和权限控制的示例:1.

    10900

    JWT不是万能的,入坑需谨慎!

    本文将从 JWT 的基本原理出发,分析在使用 JWT 构建基于 Token 的身份验证系统时需要谨慎对待的细节。 任何技术框架都有自身的局限性,不可能一劳永逸,JWT 也不例外。...4-2、生成JWT 在工程中新建 JJWTUitls.java 工具类,使用 jjwt 提供的方法实现 JWT 的生成,实现细节如下: ?...5、 JWT 工作流程 在身份验证中,当用户成功登录系统时,授权服务器将会把 JSON Web Token 返回给客户端,用户需要将此凭证信息存储在本地(cookie或浏览器缓存)。...为了防止用户 JWT 令牌泄露而威胁系统安全,你可以在以下几个方面完善系统功能: 清除已泄露的令牌:此方案最直接,也容易实现,你需将 JWT 令牌在服务端也存储一份,若发现有异常的令牌存在,则从服务端令牌列表中将此异常令牌清除...客户端环境检查:对于一些移动端应用来说,可以将用户信息与设备(手机,平板)的机器码进行绑定,并存储于服务端中,当客户端发起请求时,可以先校验客户端的机器码与服务端的是否匹配,如果不匹配,则视为非法请求,

    2.3K20

    认证授权

    解决方法:使用Token的话就不会存在这个问题,在我们登录成功获得Token之后,一般会存放localStorage(浏览器本地存储)中。...身份验证服务响应并返回了签名的 JWT(上面包含了用户身份的内容)。用户以后每次向后端发请求都在Header中带上JWT。用户检查JWT并获取用户身份信息。...2、有效避免了跨站请求伪造(CSRF) 攻击:在我们登录成功获得Token之后,一般会选择存放localStorage(浏览器本地存储)中。...使用 token 认证的方式就不好解决了,token一旦派发出去,如果后端不增加其他逻辑的话,它在失效之前都是有效的。最佳实践:token 存入内存数据库:token 存入redis 内存数据库。...由于客户端是将AuthToken存储在Cookie中的,但是Cookie是不能跨域的。

    1.6K10

    探索RESTful API开发,构建可扩展的Web服务

    以下是关于如何使用JSON Web Tokens (JWT) 进行身份验证以及一些安全性的详细实现:使用JSON Web Tokens (JWT) 进行身份验证JSON Web Tokens (JWT)...JWT通常包含用户的唯一标识符(如用户ID)和一些其他信息(如用户名或角色)。发送JWT: 客户端收到JWT后,将其存储在本地,通常使用localStorage或sessionStorage。...将JWT包含在每个请求中: 客户端在发送请求时,将JWT包含在请求的Authorization头部中。服务器可以解码JWT并验证用户的身份。...exit;}// 用户身份验证成功$user_id = $decoded_jwt['user_id'];安全性最佳实践除了使用JWT进行身份验证之外,还有一些其他的安全性的设计如下所示:1....限制访问使用角色和权限来限制对敏感资源的访问,确保用户只能访问他们有权限访问的资源。在用户登录时,可以将用户的角色和权限信息存储在令牌中,然后在每个请求中验证用户的角色和权限。5.

    27800

    一文搞懂Cookie、Session、Token、Jwt以及实战

    应用程序存储此令牌,并在随后的API请求中使用它来访问用户的电子邮件。JWT (JSON Web Tokens)JWT是一种紧凑、安全的表示双方之间传输声明的方法。...用户登录后,服务器生成一个包含用户身份和权限的JWT。这个JWT发送给客户端并存储在本地。当用户想要访问受保护的资源时,客户端在HTTP请求的Authorization头部中包含JWT。...、需要维护会话状态存储较多敏感信息,如用户登录状态、购物车内容等Token用于身份验证和授权的令牌无状态、可扩展、跨域需要额外的安全措施来保护令牌、增加网络传输负载API身份验证,特别是在分布式系统中JWT...之后我推荐一下在实战中的一些我认为的最佳实战(不代表为最好,在我这里为最好的,如果有错误也欢迎各位来评论区讨论)首先,你需要添加Spring Security和JWT的依赖项到你的pom.xml文件中:...密钥管理最佳实践:不要在代码中硬编码密钥。使用专门的密钥管理系统,如AWS KMS、HashiCorp Vault或其他。定期更换密钥,并确保旧密钥不再被用于签名新的JWT。

    1.4K20

    [安全 】JWT初学者入门指南

    传统上,应用程序通过会话cookie保持身份,这些cookie依赖于服务器端存储的会话ID。在此结构中,开发人员被迫创建独特且特定于服务器的会话存储,或实现为完全独立的会话存储层。...然后,客户端将其存储并将请求中的令牌传递给您的应用程序。这通常使用HTTP中的cookie值或授权标头来完成。...这里真正的问题是,你安全地使用它们吗?在Stormpath,我们遵循这些最佳实践,并鼓励我们的客户也这样做: 将您的JWT存储在安全的HttpOnly cookie中。...每次使用令牌对用户进行身份验证时,您的服务器必须验证令牌是否已使用您的密钥签名。 不要将任何敏感数据存储在JWT中。这些令牌通常被签名以防止操纵(未加密),因此可以容易地解码和读取权利要求中的数据。...JWT Inspector将在您的站点上发现JWT(在cookie,本地/会话存储和标题中),并通过导航栏和DevTools面板轻松访问它们。 想要了解有关JWT,令牌认证或用户身份管理的更多信息?

    4.1K30

    一个全栈SpringBoot项目-Book Social Network

    该应用程序使用 JWT 令牌确保安全性,并遵循 REST API 设计的最佳实践。...后端是使用 Spring Boot 3 和 Spring Security 6 构建的,而前端是使用 Angular 和 Bootstrap 进行样式开发的。...电子邮件验证:使用安全电子邮件验证码激活帐户。 用户身份验证:现有用户可以安全地登录其帐户。 图书管理:用户可以创建、更新、共享和归档他们的图书。 图书借阅:实施必要的检查以确定图书是否可以借阅。...学习目标 通过完成这个项目,学生将学习: 根据业务需求设计类图 实施单一回购方法 使用 JWT 令牌和 Spring Security 保护应用程序 通过电子邮件注册用户并验证帐户 通过 Spring...Data JPA 使用继承 实现服务层并处理应用程序异常 使用 JSR-303 和 Spring Validation 进行对象验证 处理自定义异常 实施分页和 REST API 最佳实践 使用 Spring

    7000

    Apache ShenYu实现新登录后让其他token失效

    这是通过引入 client_id 字段来实现的,该字段唯一标识每个登录会话。 client_id 包含在 JWT 令牌中,并针对每个请求进行验证,以确保只有最新的会话保持活动状态。...引入的变化: 后端增强: 向用户模型添加了一个 client_id 字段来跟踪当前会话的客户端 ID。 更新了身份验证过程,以在每次登录时生成新的 client_id 。...如果令牌中的 client_id 与存储的 client_id 不匹配,则会抛出 AuthenticationException ,从而使令牌无效。...2.JwtUtils修改: 修改了 generateToken 方法以将 client_id 包含在 JWT 负载中。 添加了从 JWT 令牌中提取 client_id 的方法。...测试: 添加了单元测试来验证 JWT 令牌中 client_id 的生成、包含和验证。 集成测试确保旧令牌在新登录时失效,并且有效令牌得到正确身份验证。

    5410

    分享一篇详尽的关于如何在 JavaScript 中实现刷新令牌的指南

    这样,用户就不必重复登录,从而实现无缝的身份验证体验。 此外,刷新令牌还为服务器提供了一种撤销用户访问权限的方法,而无需用户重新进行身份验证。...它们允许用户继续访问受保护的资源而无需重新进行身份验证,同时还为服务器提供了一种在必要时撤销访问的方法。...客户端将令牌存储在本地存储中或作为仅 HTTP 的安全 cookie。 客户端在每个访问受保护资源的请求中发送访问令牌。 当访问令牌过期时,客户端将刷新令牌发送到认证服务器以获取新的访问令牌。...客户端存储新的访问令牌并继续使用它来访问受保护的资源。 本示例使用 JWT 作为独立的刷新令牌,它可以存储在客户端,可用于跨多个域对用户进行身份验证和授权。...代码示例:客户端使刷新令牌失效 在客户端,可以通过从客户端存储中删除令牌并确保客户端不会再次使用该令牌来使刷新令牌失效。

    36430

    Spring Security中Token存储与会话管理:解析与实践

    会话存储适用于需要在用户登录期间保持状态的应用程序。 1.3 Cookie存储 Token可以存储在客户端的Cookie中,通常使用无状态的Token(例如JWT)。...生命周期: 随用户会话的开始和结束而创建和销毁。 安全性: 相对较高,因为Session数据存储在服务器端。 应用场景: 身份验证:存储用户登录状态。 购物车:在用户添加商品到购物车时存储相关信息。...特点: 存储位置: 存储在客户端,通常存储在Cookie中,也可以是本地存储。 生命周期: 可以有短暂的生命周期(无状态Token,如JWT),也可以在服务器端维护长期状态(有状态Token)。...Token存储在本地,例如在应用的SharedPreferences或Keychain中。这样,即使应用关闭,Token也会在本地保持,实现了用户状态的持久性。 5....移动端App建议: 采用JWT或OAuth 2.0等无状态Token的方案,将Token存储在本地,确保用户状态在应用关闭后仍然有效。

    9110

    angular面试题及答案_angular面试

    ,而directive用来在已经存在的DOM元素上实现一些行为 component是可重复使用的组件,directive是可重复使用的行为 component可创建一个view,即template或templateUrl...在传统的web技术中,客户端请求一个web页面(HTML/JSP/asp),服务器返回资源(或HTML页面),客户端再次请求另一个页面,服务器用另一个资源响应。...JWT是一个JSON对象,它有关于当前用户的一些信息或属性。一旦JWT返回给给客户端,客户端或用户将被该JWT所标记。...6)如果应用程序较大时,我会考虑延迟加载而不是完全捆绑的应用程序。 27. 使用Angular的好处 可以添加自定义的directive. 优秀的社区支持。 客户端和服务器的通讯非常便利。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    11.3K120
    领券