GitLab: 使用用户名/密码创建Access Token的暂定方法

GitLab新版不支持Session API获取Access Token,本文介绍一种通过Cookie模拟页面登录创建Access Token的方法。步骤包括:环境准备、获取认证token、模拟登录、移动至token创建页面、创建并验证token。
摘要由CSDN通过智能技术生成

在这里插入图片描述

GitLab升级到后续的版本之后,由于Session API已经不再支持,通过用户名/密码方式获取Access Token的方式需要换一种方式,这篇文章介绍一下一种通过使用cookie获取的方式。

原有方式:v3的Session API

早期版本,比如Gitlab 8,可以通过如下方式轻松获得Private Token

[root@platform tmp]# curl http://192.168.163.118:32001/api/v3/session --data 'login=root&password=12345678' 2>/dev/null |jq . |grep token 
  "private_token": "9-9rh18mQz4h3eDMQf5M"
[root@platform tmp]#

详细可参看:https://blog.csdn.net/liumiaocn/article/details/81291556

不可使用原因:随着Access Token功能的全面升级,对于token也能做到多个token以及过期日期的更细粒度的控制,session api也完成了其作用,已经不再支持。

暂定方法

思路:使用cookie,模拟页面操作的方式传入信息,然后从返回的html页面从提取相应的结果内容。

环境准备

docker-compose文件

liumiaocn:gitlab liumiao$ cat docker-compose.yml 
version: '2'    
services:
  # Version Control service: Gitlab
  gitlab:
    image: gitlab/gitlab-ce:12.10.5-ce.0
    ports:
      - "32001:80"
    volumes:
      - ./log/:/var/log/gitlab
      - ./data/:/var/opt/gitlab
      - ./conf/:/etc/gitlab
    restart: "no"
liumiaocn:gitlab liumiao$ 

事前准备

创建如下目录:

liumiaocn:gitlab liumiao$ ls
docker-compose.yml
liumiaocn:gitlab liumiao$ mkdir -p log data conf
liumiaocn:gitlab liumiao$ ls
conf			data			docker-compose.yml	log
liumiaocn:gitlab liumiao$ 

启动

启动命令:docker-compose up -d

登录URL

  • http://localhost:32001

在这里插入图片描述
注:此处设定root用户密码为liumiaocn,后续将使用root/liumiaocn创建和获取Access Token。

步骤1: 获取认证token

使用如下示例命令获取认证token信息,此信息将在步骤2模拟页面登录时使用

liumiaocn:api liumiao$ curl -c cookie.txt -i "http://localhost:32001/users/sign_in" -s >token.txt
liumiaocn:api liumiao$

生成的cookie详细

liumiaocn:api liumiao$ cat cookie.txt 
# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

#HttpOnly_localhost	FALSE	/	FALSE	1595212892	_gitlab_se
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值