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. python3 + robotframework ride 乱码问题

    执行ride时乱码问题 如果被执行的文件所在路径中含有中文,执行时可能会报如下错误 robotframework版本:robotframework-ride 1.7.3.1python 3.7.3 解 ...

  2. SqlServer数据库之递归

    递归的实现比较简单,这里就直接贴SQL了. --简单创建一个用户表 CREATE TABLE User( UserID ,) , ParentUserID INT ) 假设这张有几千条数据,开始递归它 ...

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

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

  4. MySQL主从仅同步指定库

    有两种方式,1.在主库上指定主库二进制日志记录的库或忽略的库: vim /etc/my.cnf ... binlog-do-db=xxxx 二进制日志记录的数据库 binlog-ignore-db=x ...

  5. hOW TO READING

    人脑是易忘的,新知识要不断复习,一本600页的书,总结出来要记住的知识可能只有30页.一段2小时的技术视频,总结到纸上可能只有10分钟的阅读量.那么如何复习这600页的书和2小时的视频呢? 答案就是总 ...

  6. Ubuntu 开发环境搭建教程

    Ubuntu 开发环境搭建教程 本文原始地址:https://sitoi.cn/posts/18425.html 更新 sudo apt upgrade sudo apt update 生成本机密钥 ...

  7. 201871010109-胡欢欢《面向对象程序设计(java)》第二周学习总结

    开头: 项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>     https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地 ...

  8. 云服务器ECS(Elastic Compute Service),知识点

    资料 网址 什么是云服务器ECS https://help.aliyun.com/document_detail/25367.html?spm=a2c4g.11186623.6.544.4e1e376 ...

  9. nginx secure_link_module 访问包含

    server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.acce ...

  10. USACO Buying Feed, II

    洛谷 P2616 [USACO10JAN]购买饲料II Buying Feed, II 洛谷传送门 JDOJ 2671: USACO 2010 Jan Silver 2.Buying Feed, II ...