所以这是我在这里提出的问题的附录。感谢@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
通过用户输入的用户名USERNAME
和PASSWORD
密码进行身份验证的位置和位置。
我不需要帮助阅读用户的输入;那不是问题。我的问题(总结)是能够通过他们的用户名和密码对 Gitlab 用户进行身份验证。
再次感谢@dessert 的帮助,感谢任何其他帮助!
快速编辑:我发现这个论坛帖子使用登录名和密码进行身份验证,大多数人都说使用个人访问令牌。这是否意味着我必须让用户给我他们的 PAT 以进行身份验证?或者我是否提供了我的PAT 并且它以某种方式做某事?(我对此有点不清楚)
所以似乎这个问题没有得到那么多答案。我想分享我的答案:不要实现这个。
在发现我实际上认为这个验证会在 Gitlab 上下载一个私人 repo 后,我发现了这一点。但是,它不会,因为它取决于链接到 repo 的用户帐户。
我的解决方案是警告他们,在他们继续执行脚本之前,他们会将 SSH 密钥添加到他们的帐户中。不是一种万无一失的工作方式,但目前它似乎对我有用。
谢谢 :)