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. tempermonkey文档及为google翻译添加清除输入框脚本

    想通过tempermonkey为google增加一个清除输入框的快捷键,这本来是很好做的事情,后来也证明确实是那么简单,不过中间遇到了几个奇怪的问题,有必要记录一下 tempermonkey 文档:h ...

  2. 深入浅出JVM之垃圾收集算法

    判断哪些对象需要被回收 引用计数算法: 给对象中添加一个引用计数器,每当有一个地方引用时,计数器值就加1:当引用失效时,计数器值就减1:任何时刻计数器为0的对象就是不可能再被使用的. 但是JVM没有使 ...

  3. 通过SOFA看Java服务端如何实现运行时的模块化

    本文阅读时间大约7分钟. 今天我们谈谈SOFA模块化,首先看一段SOFA的介绍: SOFABoot是蚂蚁金服开源的基于Spring Boot的研发框架,它在Spring Boot的基础上,提供了诸如 ...

  4. itext生成pdf如何使用windows系统下的各种字体

    一.首先是,使用windows字体的正常方式. @Test /** * 使用windows系统下的字体,new Font方式 */ public void test1_1() throws Docum ...

  5. HTML5-表单 自带验证

    表单语法<form method="post"(规定如何发送表单数据 常用值:get|post) action="result.html">(表示向 ...

  6. TP5.0整合webuploader实现多图片上传功能

    在https://github.com/fex-team/webuploader 下载webuploader并解压,解压后放到public里面.其中我把解压缩后的文件夹改名为webuploader,放 ...

  7. Android开发:为什么你的学习效率如此低,为什么你很迷茫?

    一天一天的过的真的是太快了,常常感到时间在前进,而我们还在停滞不前,看似每天努力的工作学习着,仔细想想其实又会发现,一天下来我们好像还真的什么都没干,看似忙碌的一天,我们把时间都用在哪了?学习!可是为 ...

  8. 20180610模拟赛T1——脱离地牢

    Description 在一个神秘的国度里,年轻的王子Paris与美丽的公主Helen在一起过着幸福的生活.他们都随身带有一块带磁性的阴阳魔法石,身居地狱的魔王Satan早就想着得到这两块石头了,只要 ...

  9. 07-numpy-笔记-join

    字符串.join(字符串序列) 一目了然: #!/usr/bin/python # -*- coding: UTF-8 -*- str = "-"; seq = ("a& ...

  10. 重新学习Spring注解——扩展原理

    39.扩展原理-BeanFactoryPostProcessor 40.扩展原理-BeanDefinitionRegistryPostProcessor 41.扩展原理-ApplicationList ...