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地址限制令牌使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/34375.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

报错注入(主键重复)攻击原理

基本原理 利用数据表中主键不能重复的特点,通过构造重复的主键,使得数据库报错,并将报错结果返回到前端。 SQL说明函数 以pet数据表为例进行说明 rond(): 返回[0,1)区间内的任意浮点数。 count(): 返回每个组的列行数。 如&#xff0…

SWIG使用方法

安装 下载 swigwin软件包,解压到合适的位置,然后将路径添加到环境变量即可。 编写C代码 //vector.hpp class Vector { private:int x;int y; public:Vector(int,int);double abs();void display(); };//vector.cpp #include "vector.hpp" …

CI/CD—K8S 基本理解与部署

1 K8S 是什么 Kubernetes 是一款容器的编排调度工具,来源于 Google 开源的 Brog 系统。Kubernetes简称K8S,是用8代替8个字符 “ubernete” 而成的缩写,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化…

解决createRoot is not a function

报错: 出现的原因:在于把react18使用的vite构建,在开发中因react版本太高与其他库不兼容,而在降级的时候,出现以上dom渲染出现报错。 解决:将 src/index.j文件改成如下 import React from react; import…

【数据结构与算法】十大经典排序算法-冒泡排序

🌟个人博客:www.hellocode.top 🏰Java知识导航:Java-Navigate 🔥CSDN:HelloCode. 🌴掘金:HelloCode 🌞知乎:HelloCode ⚡如有问题,欢迎指正&#…

form 表单恢复初始数据

form 表单恢复初始数据 在现代的 Web 开发中,表单是不可或缺的组件之一。用户可以通过表单输入和提交数据,而开发者则需要对这些数据进行处理和存储。然而,在某些情况下,我们可能需要重置表单并恢复到最初的状态。 本文介绍了如…

MATLAB计算连续月份的不同栅格数据间的相关系数(输出为tif影像)

%先导入投影信息,某个影像的路径就行(最好是你分析的数据中的一个) [a,R]readgeoraster(G:\SIF\Global-AI_monthly_v3\bi\199001.tif); infogeotiffinfo(G:\SIF\Global-AI_monthly_v3\bi\199001.tif); [m,n]size(a); i1;gwzeros(m*n,24); %此…

锐捷设备密码管理、密码恢复、恢复出厂设置

目录 配置登录用户名密码以及Enable密码 只需要密码登录 需要用户名和密码登录(无AAA) 需要用户名和密码登录(有AAA) 密码恢复 Web密码忘记 Telnet/SSH密码忘记 Console密码忘记 所有密码都忘记,通过Console进…

服务器数据恢复-RAID5上层Hyper-V虚拟机数据恢复案例

服务器数据恢复环境: 一台Windows Server服务器,部署Hyper-V虚拟化环境,虚拟机的硬盘文件和配置文件存放在一台DELL存储中。该存储中有一组由4块硬盘组建的RAID5阵列,用来存放虚拟机的数据文件,另外还有一块大容量硬盘…

nvm的使用

nvm (Node Version Manager) 是管理Node.js版本的一个工具,主要的使用方法如下: 安装nvm: https://github.com/coreybutler/nvm-windows/releases或者通过wget、git等下载安装脚本,然后运行安装。 验证安装: command -v nvm列出可安装的版本: nvm ls-remote安装指定版本: …

【TypeScript】进阶之路语法细节,类型和函数

进阶之路 类型别名(type)的使用接口(interface)的声明的使用二者区别: 联合类型和交叉类型联合类型交叉类型 类型断言获取DOM元素 非空类型断言字面量类型的使用类型缩小(类型收窄)TypeScript 函数类型函数类型表达式内部规则检测函数的调用签…

keil下载程序具体过程:概述

一、前言 keil下载程序具体过程将由一系列的博客组成,将深入探讨keil这种IDE下载镜像文件时具体做了哪些事情。我们平常下载镜像的时候,只是点击了一下Download按钮,剩下的都由keil替代我们完成了。本系列博客将揭示这一过程,keil…

【云原生】kubernetes控制器deployment的使用

目录 ​编辑 1 Controller 控制器 1.1 什么是 Controller 1.2 常见的 Controller 控制器 1.3 Controller 如何管理 Pod 2 Deployment 2.1 创建 deployment 2.2 查看 deployment 2.3 扩缩 deployment 2.4 回滚 deployment 2.5 删除 deployment 1 Controller 控制器 …

markdown命令模板

markdown快速入门(typora) 1、代码块 //代码块语 public static void main(String[] args){}//linux下spring项目的启动命令 # java -jar blog start ## 2、标题:java # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题3、字体 …

Webpack 的 sass-loader 在生产模式下最小化 CSS 问题

学习webpack时候我发现一个问题: 将mode 改为production模式后,生成的css会被压缩了,但是我并没有引入CssMinimizerPlugin插件,然后我试着将optimization.minimize 设置为false,测试是否为webpack自带的压缩&#xff0…

RWEQ风蚀方程模型与ArcGIS数据处理Python代码库添加结合理论研究和科研实践

RWEQ模型是应用比较普遍的能适应大区域定量估算风蚀量的模型。该模型是基于大量野外实验的一种经验模型,在实际测定风力导致的土壤侵蚀量以及当地的气象、地表植被、土壤湿度、地表的结皮和地表的可蚀性等因子的基础上得出的一个经验方程。 1、掌握土壤风蚀模型的原…

【计算机网络】——数据链路层

二、组帧 1、字符计数法 帧头部使用一个字符来表示帧的大小(包括第一个计数字符) (此处一字符一个字节) 2、字符填充收尾定界法 特定字符来定界帧的首和尾。若帧中数据段出现等同于特定字符的字符内容,前置一个转义字符。(类似于正则表达…

PowerShell 获取某目录下所有的文件、文件夹,同时对获取到的文件路径字符串进行替换处理

PowerShell 获取某目录下所有的文件、文件夹,同时对获取到的文件路径字符串进行替换处理 前言: 为了将Windows系统下的Java编译文件与linux服务器上的文件进行比较,故进行此文件路径的获取及路径处理。 在只有文件路径 而没有实际文件的情况下…

Postman 的简单使用

什么是Postman 在程序开发中用于调试网络程序或者跟踪网页请求。可以对网页进行简单的基本信息调试。Postman最早是作用chrome浏览器插件存在的,但是2018年初Chrome停止对Chrome应用程序的支持。所以现在Postman提供了独立的安装包,不再依赖于Chrome浏览…

flutter 初识(开发体验,优缺点)

前言 最近有个跨平台桌面应用的需求,需要支持 windows/linux/mac 系统,要做个更新应用的小界面,主要功能就是下载更新文件并在本地进行替换,很简单的小功能。 花了几分钟构建没做 UI 优化的示例界面: 由于我们的客…