1

如果团队有 uaa 支持,如何自动执行飞行登录?目前,fly cli 会弹出一个登录链接,您必须在单独的浏览器窗口中手动打开该链接。更优雅的东西将是首选。

4

1 回答 1

0

为了自动化fly login使用 uaa 或 github 的团队,您需要自动单击 fly 给您的链接,在某种浏览器上登录后端服务,然后等待 fly 告诉您关闭浏览器窗户。

任何 web driver 客户端都可以通过几行代码完成这项任务,而 concourse 团队在我们使用 go 进行测试时使用了agouti + phantomJS 。

session, _ := Fly("login", "-c", atcUrl, "-n", teamName, "--ca-cert", certPath)
Eventually(session).Should(gbytes.Say("or enter token manually:"))

output := string(session.Out.Contents())
re := regexp.MustCompile("https://.*")
submatches := re.FindStringSubmatch(output)
loginUrl := submatches[0]

Expect(page.Navigate(loginUrl)).To(Succeed())

在此之后,您可能需要在浏览器中自动登录您的帐户。您选择的任何驱动程序都应该使这变得容易。

例如,我们这部分的代码如下所示:

Expect(page.FindByName("username").Fill(cfConfig.AdminUser)).To(Succeed())
Expect(page.FindByName("password").Fill(cfConfig.AdminPassword)).To(Succeed())

Expect(page.FindByButton("Sign in").Click()).To(Succeed())

任何三足身份验证流程都将使用浏览器,因为我们用来验证用户身份的第三方服务需要浏览器登录。

于 2017-01-30T23:58:58.393 回答