NPM与外部服务的集成(上)
目录
1、关于访问令牌
1.1 关于传统令牌
1.2 关于粒度访问令牌
2、创建和查看访问令牌
2.1 创建访问令牌
在网站上创建传统令牌
在网站上创建粒度访问令牌
使用CLI创建令牌
CIDR限制令牌错误
查看访问令牌
在网站上查看令牌
在CLI上查看令牌
令牌属性
1、关于访问令牌
注意:您必须使用npm版本5.5.1或更高版本才能使用访问令牌。
在使用API或npm命令行界面(CLI)时,访问令牌是使用用户名和密码向npm进行身份验证的替代方案。 访问令牌是一个十六进制字符串,您可以使用它来进行身份验证,它赋予您安装和/或发布模块的权利。
有两种类型的访问令牌可用:
- 传统令牌
- 粒度访问令牌
您可以创建访问令牌,以给予其他工具(如持续集成测试环境)能够访问您的npm包。例如,GitHub Actions提供了存储密钥的能力,例如访问令牌,然后您可以使用这些秘密来进行身份验证。 当您的工作流运行时,它将能够像您一样完成npm任务,包括安装您可以访问的私有包。
您可以使用Web或CLI中的令牌,以最简单的方式使用。你在每个环境中所做的事情都会反映在另一个环境中。
令牌命令允许您:
- 查看令牌以更轻松地跟踪和管理
- 创建新的传统令牌
- 根据IP地址范围(CIDR)限制访问
- 删除/撤销令牌
1.1 关于传统令牌
传统令牌是以与创建它们的用户相同的权限创建的。运行npm login
时,npm CLI会自动生成并使用发布令牌。
有三种不同类型的遗留令牌:
- 只读:您可以使用这些令牌从注册表下载包。这些令牌最适合安装软件包的自动化和工作流。为了提高安全性,我们建议使用粒度访问令牌。
- 自动化:您可以使用这些令牌下载软件包并安装新软件包。这些令牌最适合发布新包的自动化工作流。自动化令牌不适用于在npm上执行操作,并且适用于CI/CD工作流。为了提高安全性,我们建议使用粒度访问令牌。
- 发布:您可以使用这些令牌下载软件包、安装软件包以及更新用户和软件包设置。我们建议将它们用于交互式工作流,如CLI。如果在您的帐户上启用了2FA,发布令牌将需要2FA才能在npm上执行敏感操作。
1.2 关于粒度访问令牌
细粒度访问令牌允许您根据要使用令牌的用途限制对令牌的访问。使用粒度访问令牌,您可以:
- 限制令牌可以访问哪些包和范围
- 向特定组织授予令牌访问权限
- 设置令牌到期日期
- 基于IP地址范围限制令牌访问
- 选择只读或读写访问
您可以在npm帐户上创建多达1000个粒度访问令牌。您可以设置令牌的有效期,至少在未来一天内。每个令牌最多可以访问50个组织,最多可以访问50个包、50个作用域或50个包和作用域的组合。访问令牌与用户的权限绑定;因此,它在任何时间点都不能具有比用户更多的许可。如果用户从包或组织撤销了其访问权限,它们的粒度访问令牌也将使其访问从那些包或org中被撤销。
当您给予对组织的令牌访问权限时,令牌只能用于管理组织设置以及与该组织关联的团队或用户。它不给予令牌发布组织管理的包的权利。
2、创建和查看访问令牌
您可以从网站和命令行(CLI)界面创建和查看访问令牌。
2.1 创建访问令牌
在网站上创建传统令牌
注意:为了提高安全性,我们建议使用粒度访问令牌,而不是旧版只读令牌或旧版自动化令牌。
1、在页面的右上角,单击您的个人资料图片,然后单击访问令牌。
2、可以看到最近的访问令牌列表,上面2个按钮,可以用来创建新的令牌,以及删除列表中的令牌,如下所示:
令牌有2中,颗粒度访问令牌,以及经典令牌
3、选择一种类型进行令牌的创建,这里先选择经典令牌的创建,需要输入确认密码才能继续。
4 、输入确认密码之后,弹出如下页面。
name: 需输入访问令牌的名字。
访问令牌的类型:
- 只读:只读令牌只能用于从注册表下载包。 它将有权限读取您有权访问的任何私有包。 对于正在安装软件包但不发布新软件包的自动化和工作流,建议使用此方法。
- 自动化:自动化令牌可以下载包并发布新包,但如果您在帐户上配置了双因素身份验证(2FA),则不会强制执行。 您可以在持续集成工作流和其他自动化系统中使用自动化令牌来发布包,即使您无法输入一次性密码。
- 发布:发布令牌可以代表您执行任何操作,包括下载包、发布包以及更改用户设置或包设置。 如果您的帐户上配置了双因素身份验证,则在使用发布令牌时,您将需要输入一次性密码。 对于CLI等交互式工作流,建议使用此方法。
5、然后单击左下角的“生成令牌”按钮,生成一个新的访问令牌。
6、令牌生成之后,回访令牌列表页面,在列表上面可以看到新生成的令牌。
请确保复制您的令牌。它在这里只显示一次。
在网站上创建粒度访问令牌
1、在页面的右上角,单击您的个人资料图片,然后单击访问令牌。
2、可以看到最近的访问令牌列表,上面2个按钮,可以用来创建新的令牌,以及删除列表中的令牌,如下所示:
令牌有2中,颗粒度访问令牌,以及经典令牌
3、选择一种类型进行令牌的创建,这里先选择粒度访问令牌的创建,需要输入确认密码才能继续。
4 、输入确认密码之后,弹出如下页面。
(1)需要输入令牌的名字(提供一个唯一的名字)
(2)在描述输入框中,输入对该令牌的描述信息
(3)到期时间,选择令牌到期的时间(默认选择3天)。也可以选择其他的,也已选自定义。
(4)在“允许的IP范围”字段中,输入要限制访问令牌的IP地址范围。必须使用CIDR表示法输入IP地址范围。要添加多个允许的IP范围,请单击“添加IP范围”,然后在新文本字段中输入IP范围。
(5)包以及作用域权限(默认禁止访问)
包括3种权限:
- 禁止访问
- 只读
- 可读写
可以选针对哪些包,包括:
- 当前包以及以后所有的包
- 可以选择的包,至少选择1个,最大50个
(5)组织的访问权限(默认禁止访问)
包括3种权限:
- 禁止访问
- 只读
- 可读写
摘要信息(根据以上选择生成对应的摘要信息):
根据摘要信息确认无误后,然后单击左下角“生成令牌”,生成粒度访问令牌。
5、令牌生成之后,回访令牌列表页面,在列表上面可以看到新生成的令牌。
使用CLI创建令牌
您可以使用CLI创建具有只读权限或读取和发布权限的令牌。
注意:您无法从CLI创建旧版自动化令牌或粒度访问令牌。您必须使用网站来生成这些类型的令牌。
- 只读:只允许安装和分发的令牌,但不允许发布或与您的帐户相关的其他权限。
- 发布:新令牌的默认设置,以及最允许的令牌类型。发布令牌允许安装、分发、修改、发布以及您对帐户拥有的所有权限。
此外,您可以使用CIDR表示法指定令牌仅对特定的IPv4地址范围有效。 令牌仅在从指定的IP地址使用时有效。
1、要创建新令牌,请在命令行上运行:
- npm token create 用于创建只读和发布令牌
- npm token create --read-only 用于创建只读令牌
- npm token create --cidr=[list] 用于CIDR限制的读取和发布令牌。例如
npm token create --cidr=192.0.2.0/24
npm token create --read-only --cidr=[list]
用于CIDR限制的只读令牌
2、出现提示时,输入密码。
3、如果已启用双因素身份验证
,则在出现提示时输入一次性密码。
4、从命令输出中的标记字段复制令牌。
CIDR限制令牌错误
如果您输入的CIDR字符串无效或格式不正确,您将收到类似于下面的错误:
npm ERR! CIDR whitelist contains invalid CIDR entry: X.X.X.X./YY,Z.Z.. . .
查看访问令牌
注意:不会显示完整的令牌,只会显示前四个字符和最后四个字符。您只能在创建后立即查看完整令牌。
在网站上查看令牌
在页面的右上角,单击您的个人资料图片,然后单击访问令牌。
在CLI上查看令牌
要查看与您的帐户关联的所有令牌,请在命令行上运行以下命令:
npm token list
令牌属性
- id:使用令牌ID来引用命令中的令牌。
- token:第一个数字是实际token。
- create:创建令牌的日期。
- readonly:如果是,则表示只读标记。如果为否,则指示同时具有读取和发布权限的令牌。
- CIDR白名单:按IP地址限制令牌使用。
相关文章:

NPM与外部服务的集成(上)
目录 1、关于访问令牌 1.1 关于传统令牌 1.2 关于粒度访问令牌 2、创建和查看访问令牌 2.1 创建访问令牌 在网站上创建传统令牌 在网站上创建粒度访问令牌 使用CLI创建令牌 CIDR限制令牌错误 查看访问令牌 在网站上查看令牌 在CLI上查看令牌 令牌属性 1、关于访问令…...
React Router 6
1.概述 React Router 以三个不同的包发布到 npm 上,它们分别为: react-router: 路由的核心库,提供了很多的:组件、钩子。 react-router-dom: 包含react-router所有内容,并添加一些专门用于 DOM 的组件,例如…...

Leetcode34 在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 代码: c…...

Kubernetes 调度约束(亲和性、污点、容忍)
目录 一、Pod启动典型创建过程 二、调度流程 三、指定调度节点 1.使用nodeName字段指定调度节点 2.使用nodeSelector指定调度节点 2.1给对应的node节点添加标签 2.2修改为nodeSelector调度方式 3.通过亲和性来指定调度节点 3.1节点亲和性 3.2Pod亲和性与反亲和性 3.2…...

按轨迹运行
文章目录 import math import timeimport numpy as np import matplotlib.pyplot as pltdef plot_arrow(x, y, yaw, length=5, width=1):dx = length * math.cos(yaw)dy = length * math.sin(yaw)plt.arrow(x, y, dx, dy, head_length=width, head_width=width)plt.plot([x, x …...

研发工程师玩转Kubernetes——通过PV的节点亲和性影响Pod部署
在《研发工程师玩转Kubernetes——PVC通过storageClassName进行延迟绑定》一文中,我们利用Node亲和性,让Pod部署在节点ubuntud上。因为Pod使用的PVC可以部署在节点ubuntuc或者ubuntud上,而系统为了让Pod可以部署成功,则让PVC与Pod…...

Pytest三种运行方式
Pytest 运行方式共有三种: 1、主函数模式 运行所有 pytest.main() 指定模块 pytest.main([-vs],,./testcase/test_day1.py) 只运行testcase 下的test_day1.py 文件 指定目录 pytest.main([-vs]),./testcase) 只运行testcase 目录下的文件 通过nodeid指定用例…...

城市最短路
题目描述 下图表示的是从城市A到城市H的交通图。从图中可以看出,从城市A到城市H要经过若干个城市。现要找出一条经过城市最少的一条路线。 输入输出格式 输入格式: 无 输出格式: 倒序输出经过城市最少的一条路线 输入输出样例 输入样例…...

phpspreadsheet excel导入导出
单个sheet页Excel2003版最大行数是65536行。Excel2007开始的版本最大行数是1048576行。Excel2003的最大列数是256列,2007以上版本是16384列。 xlswriter xlswriter - PHP 高性能 Excel 扩展,功能类似phpspreadsheet。它能够处理非常大的文件࿰…...

自动驾驶传感器选型
360的场景,避免有盲区,长距离 Lidar(激光雷达) 典型特点一圈一圈的,轮廓和很高的位置精度 禾赛的机械雷达 速腾的固态雷达 固态雷达是车规级的,车规级的意思是可以装到量产车上 Radar(毫米…...
4.利用matlab符号矩阵的四则运算(matlab程序)
1.简述 符号对象的建立 sym函数 sym函数用于建立单个符号对象,其常用调用格式为: 符号对象名sym(A) 1 将由A来建立符号对象,其中,A可以是一个数值常量、数值矩阵或数值表达式(不加单引号),此时符号对象为一个符号常量;…...

Go context.WithCancel()的使用
WithCancel可以将一个Context包装为cancelCtx,并提供一个取消函数,调用这个取消函数,可以Cancel对应的Context Go语言context包-cancelCtx 疑问 context.WithCancel()取消机制的理解 父母5s钟后出门,倒计时,父母在时要学习,父母一走就可以玩 …...

STM32 F103C8T6学习笔记6:IIC通信__驱动MPU6050 6轴运动处理组件—一阶互补滤波
今日主要学习一款倾角传感器——MPU6050,往后对单片机原理基础讲的会比较少,更倾向于简单粗暴地贴代码,因为经过前些日子对MSP432的学习,对原理方面也有些熟络了,除了在新接触它时会对其引脚、时钟、总线等进行仔细一些的研究之外…...

Ubantu安装Docker(完整详细)
先在官网上查看对应的版本:官网 然后根据官方文档一步一步跟着操作即可 必要准备 要成功安装Docker Desktop,必须: 满足系统要求 拥有64位版本的Ubuntu Jammy Jellyfish 22.04(LTS)或Ubuntu Impish Indri 21.10。 Docker Deskto…...

【从零开始学习JAVA | 第四十一篇】深入JAVA锁机制
目录 前言: 引入: 锁机制: CAS算法: 乐观锁与悲观锁: 总结: 前言: 在多线程编程中,线程之间的协作和资源共享是一个重要的话题。当多个线程同时操作共享数…...

Playable 动画系统
Playable 基本用法 Playable意思是可播放的,可运行的。Playable整体是树形结构,PlayableGraph相当于一个容器,所有元素都被包含在里面,图中的每个节点都是Playable,叶子节点的Playable包裹原始数据,相当于输…...

深入理解Linux内核--虚拟文件
虚拟文件系统(VFS)的作用 虚拟文件系统(Virtual Filesystem)也可以称之为虚拟文件系统转换(Virtual Filesystem Switch,VFS), 是一个内核软件层, 用来处理与Unix标准文件系统相关的所有系统调用。 其健壮性表现在能为各种文件系统提供一个通用的接口。VFS支持的文件…...
记一次 .NET 某外贸ERP 内存暴涨分析
一:背景 1. 讲故事 上周有位朋友找到我,说他的 API 被多次调用后出现了内存暴涨,让我帮忙看下是怎么回事?看样子是有些担心,但也不是特别担心,那既然找到我,就给他分析一下吧。 二࿱…...

关于安卓打包生成aar,jar实现(一)
关于安卓打包生成aar,jar方式 背景 在开发的过程中,主项目引入三方功能的方式有很多,主要是以下几个方面: (1)直接引入源代码module(优点:方便修改源码,易于维护&#…...
QString字符串与16进制QByteArray的转化,QByteArray16进制数字组合拼接,Qt16进制与10进制的转化
文章目录 QString转16进制QByteArry16进制QByteArray转QStringQByteArray16进制数拼接Qt16进制与10进制的转化在串口通信中,常常使用QByetArray储存数据,QByteArray可以看成字节数组,每个索引位置储存一个字节也就是8位的数据,可以储存两位16进制数,可以用uint8取其中的数…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...