什么是Token(令牌)

article/2025/10/12 16:07:08

Acess Token

  • 访问资源接口(API)时所需要的资源凭证

  • 简单token 的组成: uid(用户唯一的身份标识) 、time (当前时间的时间戳) ,sign(签名,token的前几位以hash算法压缩成的一定长度的16进制字符串)

  • 特点:

    • 服务端无状态变化、可扩展性好

    • 支持移动端设备

    • 安全

    • 支持跨域程序调用

    • token 的身份验证流程Token的身份验证流程

      • 客户端使用用户名和密码进行登录
      • 服务端收到请求,去验证用户名与密码
      • 验证成功后,服务端会签发一个token 并把这个token 发送给客户端
      • 客户端收到token后,会把它存储起来,比如放在cookie 里 或者 localStorage里
      • 客户端每次向服务端请求资源的时候需要带着服务端签发的token
      • 服务端收到请求后,先验证客户端请求里带着的token ,如果验证成功,就向客户端返回请求的数据
      • 优点:
        • 每一次请求都需要携带token ,需要把token 放到HTTP的Header 里
        • 基于token 的用户验证是一种服务端无状态的认证方式,服务端不用存放token数据,用解析token的计算时间换取 session的存储空间,从而减轻服务器的压力,减少频繁的查询数据库
        • token 完全由应用管理,所以它可以避开同源策略
      • Token生成示例
        使用用户唯一ID + 系统时间 + 随机数 + 过期时间得到用户信息数据,对用户信息数据进行RSA非对称加密/AES对称加密得到一个加密字符串A,将加密字符串A再次进行签名等到一个签名数据。然后将签名数据和加密字符串进行拼接,最后使用base64进行编码,得到最终的token令牌。
      	/**** @param tokenBody 实例对象,通常为bean* @param minute 过期时间   单位:min* @param <T>* @return*/
      public static <T> String createToken(T tokenBody, int minute) {long now = System.currentTimeMillis() / 1000;Gson gson = new Gson();JsonObject jsonBody = new JsonObject();jsonBody.addProperty("body", gson.toJson(tokenBody));String randomAlphabetic = RandomStringUtils.randomAlphabetic(3);JsonObject jsonHeader = new JsonObject();jsonHeader.addProperty("now", now);jsonHeader.addProperty("rand_num", randomAlphabetic);jsonHeader.addProperty("expire", (now + minute * 60));String token = null;try {byte[] encryptContent = generateEncryptBody(jsonHeader.toString(), jsonHeader.toString());byte[] signWithEncrypt = generateSignWithEncrypt(encryptContent);token = Joiner.on(".").join(new String[]{base64Encoder(jsonHeader.toString().getBytes("utf-8")),base64Encoder(encryptContent),base64Encoder(signWithEncrypt)});} catch (Exception e) {e.printStackTrace();}return token;
      }
      

    常见的鉴权模式

    • session-Cookie
    • Token验证(JWT SSO单点登录)
    • OAuth2.0 (开放授权)

    JWT 与 Token 的区别

    • 相同:
      • 都是访问资源的令牌
      • 都可以记录用户的信息
      • 都是使服务端无状态变化
      • 都是验证成功后,客户端才能访问服务端上受保护的资源
  • 区别

    • Token: 服务端验证客户端发送过来的Token 时,还需要查询数据库获取用户信息,然后验证Token 是否有效
    • JWT: 将token 和 Payload 加密后存储于客户端,服务端只需要使用秘钥进行校验即可,不需要查询或者减少查询数据库,因为JWT自包含了用户信息和加密的数据

http://chatgpt.dhexx.cn/article/orJf9esB.shtml

相关文章

什么是token?token是用来干嘛的?

相信很多从事计算机行业的朋友都听说过token这么个东西&#xff0c;但是其他行业的人就很少了解到token&#xff0c;下面就给大家来详细介绍一下token是什么意思&#xff1f;token是用来干嘛的这一块的内容&#xff0c;希望能帮助到大家。 &#x1f3fb; token是什么意思 作为…

究竟什么是token??

基于服务器验证方式的验证流程&#xff1a; 我们都是知道HTTP协议是无状态的&#xff0c;这种无状态意味着程序需要验证每一次请求&#xff0c;从而辨别客户端的身份。在这之前&#xff0c;程序都是通过在服务端存储的登录信息来辨别请求的。这种方式一般都是通过存储Session来…

python 处理 MovieLens 数据

文章目录 一、总述二、处理流程1. 处理 users 数据2. 处理 movies 数据3. 处理 ratings 数据4. 将 users、movies 和 ratings 数据合并5. one-hot 处理6. 完整代码 一、总述 该文记录处理 MovieLens-1m 数据集的步骤&#xff0c;首先分别处理用户、电影和评分数据&#xff0c;…

电影数据集总结:Netflix、MovieLens、LDOS-CoMoDa、AdomMovie

数据集&#xff1a; 1.Netflix 描述&#xff1a;包含Netflix上48万多个随机选取的匿名用户&#xff0c;对于1万7千多部电影的1兆多个电影评分 时间&#xff1a;1988.10~2005.11 内容&#xff1a; 包括training set&#xff0c;movie titles&#xff0c;probe set&#xff0…

从IMDB上爬取MovieLens数据集中的详细电影信息

文章目录 基于协同过滤的电影推荐系统数据集HTML页面分析爬虫代码运行时间百度网盘链接 基于协同过滤的电影推荐系统 用这个数据集实现了一个小型的电影推荐网站&#xff0c;GitHub代码 数据集 数据集是MovieLens提供的ml-latest-small https://grouplens.org/datasets/mov…

数据分析实例:MovieLens电影数据分析

数据分析实例&#xff1a;MovieLens电影数据分析 数据准备 数据集来源&#xff1a;grouplens.org/datasets/movielens/ 下载 ml-1m.zip&#xff0c;read me 中有电影评分介绍 MovieLens 1M电影分级。 稳定的基准数据集。 6000个用户观看4000部电影时获得100万个评分。 发布2…

Spark Hive实现基于协同过滤的电影推荐(MovieLens数据集)

这篇文章记录一下我之前做过的通过Spark与Hive实现的基于协调过滤的电影推荐。这篇文章只能提供算法、思路和过程记录&#xff0c;并没有完整的代码&#xff0c;仅尽量全面地记录过程细节方便参考。 一、数据获取 数据集是从下面这个地址下载的&#xff0c;数据集主要内容是关…

基于用户的协同过滤Movielens电影推荐系统简单实例

基于用户的协同过滤Movielens电影推荐系统简单实例 一、Movielens数据集 1. MovieLens数据集的下载&#xff08;Download&#xff09; 1&#xff09; 从网站下载数据 链接: https://grouplens.org/datasets/movielens/. 有好几种版本&#xff0c;对应不同数据量&#xff0c;…

ML之GB:基于MovieLens电影评分数据集利用基于图的推荐算法(Neo4j图数据库+Cypher查询语言)实现对用户进行Top5电影推荐案例

ML之GB&#xff1a;基于MovieLens电影评分数据集利用基于图的推荐算法(Neo4j图数据库Cypher查询语言)实现对用户进行Top5电影推荐案例 目录 基于MovieLens电影评分数据集利用基于图的推荐算法(Neo4j图数据库Cypher查询语言)实现对用户进行Top5电影推荐案例 1、定义数据集 1.…

从IMDB上爬取MovieLens-1m的补充数据(电影海报和简介)

文章主要内容 本人是想做推荐算法相关的一名在校生&#xff0c;目前想做多模态融合&#xff0c;而MovieLens-1m数据集只有电影信息和用户信息&#xff0c;于是有想法能否在原有的电影推荐公开数据集中而外获取电影海报&#xff08;图片信息&#xff09;和电影简介&#xff08;…

对Movielens数据集进行评分预测

对Movielens数据集进行评分预测 实验源码&#xff1a;lab3代码.ipynb 实验环境&#xff1a;vscode colab 数据解释&#xff1a; movies.dat的数据如下 1::Toy Story (1995)::Animation|Childrens|Comedy 2::Jumanji (1995)::Adventure|Childrens|Fantasy 3::Grumpier Old…

ML之KG:基于MovieLens电影评分数据集利用基于知识图谱的推荐算法(networkx+基于路径相似度的方法)实现对用户进行Top电影推荐案例

ML之KG&#xff1a;基于MovieLens电影评分数据集利用基于知识图谱的推荐算法(networkx基于路径相似度的方法)实现对用户进行Top电影推荐案例 目录 基于MovieLens电影评分数据集利用基于知识图谱的推荐算法(networkx基于路径相似度的方法)实现对用户进行Top电影推荐案例 # 1、定…

利用pandas对MovieLens电影数据分析

掌握pandas基本语法操作「pandas基础入门中有详细语法格式」后&#xff0c;就可以利用pandas做一些简单实例的数据处理。 Movie电影数据分析 首先需要下载电影数据集MovieLens&#xff0c;这个数据集中包含用户数据&#xff1b;电影数据&#xff1b;电影评分表。电影数据中包…

MovieLens数据集处理

有一个定律&#xff0c;对于内容的访问遵循80/20原则&#xff0c;也就是20%的内容&#xff0c;会占有80%的访问量。就是zipf分布[1]。  根据MovieLens的数据集中的ratings.dat&#xff0c;我做了数据处理&#xff0c;获取得分最高的2000个条目。 ml-pro.py import os import …

推荐系统笔记(二):常用数据集Movielens学习

介绍 movielens数据集是电影推荐数据集&#xff0c;数据集有多种大小和目的使用的数据集。按照使用目的可以分为两类&#xff0c;一类数据集适用于推进最新研究的数据&#xff0c;一类数据集是用于高校研究和教育科研使用的数据集。本次介绍三个数据集的使用和处理。 数据集下…

java读取movielens数据txt

各位好&#xff0c;我是菜鸟小明哥&#xff0c;movielens数据是常见的推荐方面的开源数据集&#xff0c;另一个推荐方面的数据集是新闻MIND&#xff0c;本文将从movielens再次出发&#xff0c;做基础的推荐方法&#xff0c;比如基本的基于标题的相似性&#xff0c;word2vector&…

推荐系统数据集之MovieLens

1.概述 MovieLens其实是一个推荐系统和虚拟社区网站&#xff0c;它由美国 Minnesota 大学计算机科学与工程学院的GroupLens项目组创办&#xff0c;是一个非商业性质的、以研究为目的的实验性站点。GroupLens研究组根据MovieLens网站提供的数据制作了MovieLens数据集合&#xff…

【工具】Movielens数据集详细介绍

MovieLens数据集 MovieLens数据集包含多个用户对多部电影的评级数据&#xff0c;也包括电影元数据信息和用户属性信息。 下载地址 http://files.grouplens.org/datasets/movielens/ 介绍 下面以ml-100k数据集为例进行介绍&#xff1a; 最主要用的是u.data(评分) | u.item…

movielens数据集简述

一、movielens数据集 ratings数据: 文件里面的内容包含了每一个用户对于每一部电影的评分。数据格式如下: userId, movieId, rating, timestamp userId: 每个用户的id movieId: 每部电影的id rating: 用户评分,是5星制,按半颗星的规模递增(0.5 stars - 5 stars) timestam…

Movielens数据集详细介绍

MovieLens数据集包含多个用户对多部电影的评级数据&#xff0c;也包括电影元数据信息和用户属性信息。下载地址为&#xff1a;http://files.grouplens.org/datasets/movielens/ 下面以ml-100k数据集为例进行介绍&#xff1a; 最主要用的是u.data(评分) | u.item(电影信息) …