我在本地地址GitLab上运行http://192.168.0.18/。Upsource正在http://192.168.0.11/上运行。
我在GitLab上添加了作为admin的Upsource应用程序。正如GitLab所说,我已经设置了客户端id和秘密令牌。授权设置为http://192.168.0.18/oauth/authorize,令牌设置为http://192.168.0.18/oauth/token,用户数据设置为http://192.168.0.18/api/v4/user (根据GitLab文档)。在字段映射中,我将用户ID设置为"id“,将电子邮件设置为"email”。
然后,在Upsource的日志页面上,我有了宣誓身份验证图标。单击它之后,GitLab需要日志记录,用户必须为其帐户授权应用程序:
需要授权 授权Upsource使用您的帐户? 您是管理员,这意味着授予对Upsource的访问将允许他们作为管理员与GitLab交互。小心行事。 该应用程序将能够: 访问您的API 读取用户信息
单击authorize按钮后,Upsource将显示信息:Authentication failed. Check your credentials and try again.。我做错什么了?场映射?
发布于 2017-03-27 20:44:55
我找到答案了。就像经常发生的那样,我和这个问题斗争了很长时间,就在我问完这个问题之后,我有了一个独立运行这个问题的想法。橡皮鸭法,我想.
正如我所怀疑的,问题在于字段映射。
我查看了Chrome中的Network选项卡,得到了以下响应:
message=getValueByPath%28json%2C+aut%E2%80%A6userIdPath%29%21%21.textValue%28%29+must+not+be+null
我手动遍历了所有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“:真、bio:null、"location":null、”skype“:”skype“:”http://www.gravatar.com/avatar/94232f2d1f8bb2fe940de439a4df1014?s=80&d=identicon“、"linkedin":"”、“twitter”:““website_url”:“website_url”:“组织”:null,"last_sign_in_at":"2017-03-25T22:28:21.487Z",“confirmed_at”:“2017-03-25T22:28:21.376 Z”,“电子邮件”:“username@username.username”,"color_scheme_id":1,"projects_limit":100000,“身份”:[],"can_create_group":true,"can_create_project":true,"two_factor_enabled":false,“can_create_project”:false}
问题在于设置ID字段名。正如我们在上面的JSON数据中所看到的,id字段应该映射到name/username,而不是id本身。在这个改变之后,我可以成功地登录到Upsource。
https://stackoverflow.com/questions/43055607
复制相似问题