angualr的token 验证会经常用在登录,注册等地方

对于token的使用方法按照以下步骤进行使用即可

1.新建一个服务

  ng g service services /+服务名

 egng g service services/player

会在根目录下出现一个叫service的服务文件夹

文件夹中会存在一个player.service,ts和一个player.service,spec.ts

2.在根目录下新建一个文件夹,是用来封装token的写法

eg: 文件夹的名字为utils

  1. 在文件夹中新建一个名字为token.util.ts的文件
  2. 打开此文件
  3. 在此文件中注入并声明 import {Injectable,BgModule} from '@angular/core'
  4. 声明引入的组件模块 @Injectable()   @NgModule()
  5. 开始进行封装

  export default class TokenUtil{    

    private name:string = 'jwt-token'

     getToken():string {

        return localStorage.getItem(this.name)

     }

     setToken(token:string):void{

      localStorage.setItem(this.name,token)

    }

  }

3.在app目录中新建文件夹http-interceptors
  • 在此文件夹中新建index.ts文件和noop-interceptor.ts文件
  • 在index.ts中写入

    /* "Barrel" of Http Interceptors */

    import { HTTP_INTERCEPTORS } from '@angular/common/http';

    import { NoopInterceptor } from './noop-interceptor';

    /** Http interceptor providers in outside-in order */

    export const httpInterceptorProviders = [

      { provide: HTTP_INTERCEPTORS, useClass: NoopInterceptor, multi: true },

    ];

  • 在noop-inter-interceptor.ts文件中写入
  1. 先引用注入

    import TokenUtil from '../../utils/token.util'
  2. import { AppRoutingModule } from './app-routing.module';
  3. @Injectable()
  4. export class NoopInterceptor implements HttpInterceptor {
      constructor(private tokenUtil: TokenUtil) { }
      intercept(req: HttpRequest<any>, next: HttpHandler)
      {
        // Get the auth token from the service.
        const authToken = this.tokenUtil.getToken();
        // Clone the request and replace the original headers with
        // cloned headers, updated with the authorization.
        const authReq = req.clone({
          headers: req.headers.set('Authorization', `bearer ${authToken}`)
        });
        // send cloned request with header to the next handler.
        return next.handle(authReq);
      }
    }
  • 在app.module.ts中引用和注入新建的一系列文件 TokenUtil 和 httpInterceptorProviders 组件
  • @NgModule中的imports中声明一次
  1. TokenUtil
  2. ReactiveFormsModule
  • 在providers中进行一次(使用)
    providers: [httpInterceptorProviders],

4.在对应的组件中ts中进行一次使用 服务引用

  import { PlayerService} from '../../player.service';
 
  constructor(private tokenUtil: TokenUtil, private route: ActivatedRoute)
 
 
 
 
 

angular数据请求 token验证的更多相关文章

  1. Ionic3的http请求如何实现token验证,并且超时返回登录页

    要求 后台提供的接口,不能让人随便输入个链接就能访问,而是要加入一个token,token是动态的,每次访问的时候判断,有权限并且未过期的时候才可以访问接口. 后台的设计是 在登录的时候,首先要pos ...

  2. Token验证的流程及如何准确的判断一个数据的类型

    Token验证的流程: 1,客户端使用用户名跟密码请求登录:2,服务端收到请求,去验证用户名与密码:3,验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端:4,客户端收到 T ...

  3. C# 响应微信发送的Token验证,文字、图文自动回复、请求客服对话.....

    代码如下,有需要的可以参考: using System; using System.Collections.Generic; using System.Linq; using System.Web; ...

  4. 客户端ajax请求为实现Token验证添加headers后导致正常请求变为options跨域请求解决方法

    客户端为了实现token认证,通过Jquery的ajaxSetup方法全局配置headers: 全局配置headers后会导致部分不需要token认证的请求变为options请求,导致跨域访问.报错信 ...

  5. angular get 数据请求

    数据请求 get 新建一个服务 1. ng g service services /+服务名  eg:ng g service services/player 在此服务中进行设置 引入自带组件以及注册 ...

  6. 【JWT】JWT+HA256加密 Token验证

    目录 Token验证 传统的Token验证 JWT+HA256验证 回到顶部 Token验证 最近了解下基于 Token 的身份验证,跟大伙分享下.很多大型网站也都在用,比如 Facebook,Twi ...

  7. Token验证失败

    Token验证失败 微信 微信公众平台开发 Token校验失败 URL Token原文 http://www.cnblogs.com/txw1958/p/token-verify.html Token ...

  8. Token验证失败的解决方法

    Token验证失败 微信 微信公众平台开发 Token校验失败 URL Token原文 http://www.cnblogs.com/txw1958/p/token-verify.html Token ...

  9. 微信公众平台——token验证php版

    这几天开始接触微信公众号的开发,注册这些就不说了,我是先弄了个测试号用着.进入正题 所谓token验证,其实就是微信服务器向自己要用到的服务器url发送一段数据,其中有一个参数$_GET['echho ...

随机推荐

  1. 万张PubFig人脸数据实现基于python+OpenCV的人脸特征定位程序(1)

    在最近刷今日头条以及其他媒体软件时,经常会发现一些AI换脸的视频,于是我想,可不可以自己实现一个可以进行人脸识别的软件程序.我的具体流程是先配合python网络爬虫先进行万张PubFig人脸公共图片的 ...

  2. 基于NPOI对Excel进行简单的操作

    1. 关于NPOI NPOI是一个开源的用于在C#程序中读写Excel.WORD等微软OLE2组件文档的项目,使用NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作. 2 ...

  3. 线程池---Day26

    线程池思想概述 当我们要使用线程的时候就去创建一个线程时,虽然实现方便,但是会出现问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率, ...

  4. HighChat 动态绑定数据(二)

    也是对最近几天的折线图搞得烦心,看了好多前辈的文章,也总结了一下. 1.先看后台程序,这是我模拟的一些参数 就是一个字符串.没啥好说的 public ActionResult Index2() { s ...

  5. 开发工具--浅谈Git

    工具|浅谈Git Git这个工具,是我一直想写文章,终于我实现了我的想法.在我开始写之前,发表一下自己的看法,git只是一个工具,既然已经认定是一个工具,那么一定具备工具这类的共同特征,请用面向对象的 ...

  6. Gin-Go学习笔记七:Gin-Web框架 布局页面

    模板使用 页面布局 1>     一个html页面由:head部分,body部分,内部css,内部js,外联css,外联的js这几部分组成.因此,一个布局文件也就需要针对这些进行拆分. 2> ...

  7. Generate a document using docxtemplater

    生成word文档,更新word内容 http://javascript-ninja.fr/docxtemplater/v1/examples/demo.html   https://docxtempl ...

  8. php封装协议的两道题

    这几天终于刷完了自己说是要刷完的那几道题,赶紧写几篇博客记录.. 1.  先看看这个网站:https://blog.csdn.net/qq_41289254/article/details/81388 ...

  9. swagger页面详细讲解

  10. windows docker 安装 Kitematic

    在已经安装好docker for windows的基础上, 右键docker任务栏小图标, 选择Kitematic 然后放在docker的安装目录中C:\Program Files\Docker: 文 ...