我正在本地地址http://192.168.0.18/上运行GitLab。 Upsource正在http://192.168.0.11/上运行。
我在GitLab上添加了Upsource应用程序作为管理员。我已经设置了客户端ID和秘密令牌,正如GitLab所说。授权设置为http://192.168.0.18/oauth/authorize,令牌设置为http://192.168.0.18/oauth/token,用户数据设置为http://192.168.0.18/api/v4/user(根据GitLab documentation)。在字段映射中,我将用户ID设置为“id”,并将两封电子邮件设置为“email”。
然后,在Upsource的登录页面上,我发誓认证图标。点击它后,GitLab需要记录,用户必须为其帐户授权应用程序:
需要授权
授权Upsource使用您的帐户?
您是管理员,这意味着授予对Upsource的访问权限将允许他们作为管理员与GitLab进行交互。谨慎行事。
此应用程序将能够:
访问您的API
阅读用户信息
Hovewer,点击authorize
按钮后,Upsource会显示信息:Authentication failed. Check your credentials and try again.
。我犯了什么错?字段映射?
答案 0 :(得分:2)
哦,我找到了答案。正如经常发生的那样,我在这个问题上花了很多时间,在我提出这个问题之后,我已经有了自己的想法。橡皮鸭的方法,我猜......
我怀疑,问题在于字段映射。
我查看了Chrome中的Network
标签,并得到了回复:
我手动完成了所有Gitlab工作流程,然后我就可以登录了 - 在运行http://192.168.0.18/api/v4/user端点后,我获得了用户数据:
{ “名称”: “用户名”, “用户名”: “用户名”, “ID”:3 “状态”: “活跃”, “avatar_url”: “http://www.gravatar.com/avatar/94232f2d1f8bb2fe940de439a4df1014?s=80&d=identicon”, “的web_url”: “http://debian/username”, “created_at”: “2017-03-25T22:28:21.375Z”, “is_admin”:真, “生物”:NULL, “位置”:NULL, “Skype的”: “”, “LinkedIn”: “”, “推特”: “”, “WEBSITE_URL”: “”, “组织”:空, “last_sign_in_at”: “2017-03-25T22:28:21.487Z”, “confirmed_at”:“2017年-03-25T22:28:21.376Z “ ”电子邮件“: ”username@username.username“, ”color_scheme_id“:1, ”projects_limit“:100000 ”current_sign_in_at“:” 2017-03-25T22:36:31.853Z ”, “标识”:[], “can_create_group”:真 “can_create_project”:真 “two_factor_enabled”:假, “外部”:假}
问题在于设置ID字段名称。正如我们在上面的JSON数据中看到的那样,id
字段应该映射到name
/ username
,而不是id
本身。
在这次改变之后,我可以成功登录Upsource。