如何通过 bash 可执行文件使用用户的 Gitlab 用户名和密码进行身份验证

如何通过 bash 可执行文件使用用户的 Gitlab 用户名和密码进行身份验证

这是对我提出的问题的补充这里。感谢@dessert 对这个问题提供了很大帮助。

因此,我尝试使用用户名和密码对 Gitlab 用户进行身份验证,而不是通过创建模拟令牌。目前,@dessert 创建的使用模拟令牌对用户进行身份验证的代码如下:

$ curl -d '{"title":"test key","key":"'"$(cat ~/.ssh/id_rsa.pub)"'"}' -H 'Content-Type: application/json' https://gitlab.com/api/v4/user/keys?private_token=<my_access_token>

主要关注“private_token=”,除了创建模拟令牌之外这里

$ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "name=mytoken" --data "expires_at=2017-04-04" --data "scopes[]=api" https://gitlab.example.com/api/v4/users/42/impersonation_tokens

我希望能够使用 Gitlab 用户的用户名和密码来验证他们的身份。我见过有人使用 Github 这样做,我自己也这样做过:

$ curl -u "USERNAME:PASSWORD" --data "{\"title\": \"TITLE\", \"key\": \"$(cat ~/.ssh/id_rsa.pub)\"}" https://api.github.com/user/keys

其中USERNAMEPASSWORD通过用户输入的用户名和密码进行身份验证。

我不需要帮助读取用户的输入;这不是问题所在。我的问题(总结)是能够通过用户名和密码对 Gitlab 用户进行身份验证。

再次感谢@dessert 的帮助,任何其他帮助都值得感激!!

快速编辑:我发现论坛帖子中提到了使用登录名和密码进行身份验证,大多数人都说使用个人访问令牌。这是否意味着我必须让用户提供他们的 PAT 进行身份验证?或者我是否提供我的PAT 并以某种方式做了一些事情?(我对此有点不清楚)

答案1

所以这个问题似乎没有得到太多的回答。我想分享一下我的答案:不要实施。

我在发现我原本以为的验证会下载 Gitlab 上的私有仓库后,才明白了这一点。然而,事实并非如此,因为它取决于链接到仓库的用户的帐户。

我的解决方案是警告他们,在继续执行脚本之前,他们需要将 SSH 密钥添加到他们的帐户中。这不是一种万无一失的方法,但目前对我来说似乎有效。

谢谢 :)

相关内容