{"id":18611495,"url":"https://github.com/mschwager/duo_go","last_synced_at":"2025-10-29T11:51:17.070Z","repository":{"id":57490431,"uuid":"73580660","full_name":"mschwager/duo_go","owner":"mschwager","description":"An implementation of the Duo Security Web SDK in Go/Golang.","archived":false,"fork":false,"pushed_at":"2020-05-01T15:34:57.000Z","size":17,"stargazers_count":13,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-11T09:28:11.712Z","etag":null,"topics":["2fa","demo","duo","go","golang","websdk"],"latest_commit_sha":null,"homepage":"https://duo.com/docs/duoweb","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mschwager.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-11-12T21:53:06.000Z","updated_at":"2023-03-01T05:15:13.000Z","dependencies_parsed_at":"2022-09-02T10:51:19.312Z","dependency_job_id":null,"html_url":"https://github.com/mschwager/duo_go","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/mschwager/duo_go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mschwager%2Fduo_go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mschwager%2Fduo_go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mschwager%2Fduo_go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mschwager%2Fduo_go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mschwager","download_url":"https://codeload.github.com/mschwager/duo_go/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mschwager%2Fduo_go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281617036,"owners_count":26531922,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2fa","demo","duo","go","golang","websdk"],"created_at":"2024-11-07T03:14:02.071Z","updated_at":"2025-10-29T11:51:17.041Z","avatar_url":"https://github.com/mschwager.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\n\n[![Build Status](https://travis-ci.org/mschwager/duo_go.svg?branch=master)](https://travis-ci.org/mschwager/duo_go)\n[![Coverage Status](https://coveralls.io/repos/github/mschwager/duo_go/badge.svg?branch=master)](https://coveralls.io/github/mschwager/duo_go?branch=master)\n[![Go Report Card](https://goreportcard.com/badge/github.com/mschwager/duo_go)](https://goreportcard.com/report/github.com/mschwager/duo_go)\n[![Pkg.Go.Dev](https://img.shields.io/badge/pkg.go.dev-reference-blue?style=flat\u0026logo=go)](https://pkg.go.dev/github.com/mschwager/duo_go)\n[![Module Version](https://img.shields.io/github/v/tag/mschwager/duo_go?label=version\u0026logo=go)](https://pkg.go.dev/mod/github.com/mschwager/duo_go)\n\n**duo_go** - Duo 2FA for Go web applications: https://duo.com/docs/duoweb\n\n# Installing\n\n```\n$ go get github.com/mschwager/duo_go\n```\n\n# Using\n\nHere's a short snippet of code demonstrating the library:\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n    \"github.com/mschwager/duo_go\"\n)\n\nfunc main() {\n    duo_configuration := \u0026duo_go.Web{\n        Ikey: \"\u003cikey-here\u003e\",\n        Skey: \"\u003cskey-here\u003e\",\n        Akey: \"\u003cakey-here\u003e\",\n    }\n    sig_request, _ := duo_go.SignRequest(duo_configuration, \"example_username\")\n\n    fmt.Println(\"Signature request: \" + sig_request)\n}\n```\n\n```\n$ go run example.go\nSignature request: TX|ZXh...|5ce...:APP|ZXh...|fc2...\n```\n\nFor a more complete example, checkout the demo code.\n\n# Demo\n\nConfigure your `ikey`, `skey`, `akey`, and `host`, in `duo_go_demo.go`.\n\nThen run the following command:\n\n```\n$ go run duo_go_demo/duo_go_demo.go\n```\n\n# Testing\n\n```\n$ go test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmschwager%2Fduo_go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmschwager%2Fduo_go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmschwager%2Fduo_go/lists"}