.. | ||
.travis.yml | ||
discover.go | ||
discovery_cache.go | ||
getter.go | ||
go.mod | ||
go.sum | ||
html_discovery.go | ||
LICENSE | ||
nonce_store.go | ||
normalizer.go | ||
openid.go | ||
README.md | ||
redirect.go | ||
verify.go | ||
xrds.go | ||
yadis_discovery.go |
openid.go
This is a consumer (Relying party) implementation of OpenId 2.0,
written in Go.
go get -u github.com/yohcop/openid-go
Github
Be awesome! Feel free to clone and use according to the licence.
If you make a useful change that can benefit others, send a
pull request! This ensures that one version has all the good stuff
and doesn't fall behind.
Code example
See _example/
for a simple webserver using the openID
implementation. Also, read the comment about the NonceStore towards
the top of that file. The example must be run for the openid-go
directory, like so:
go run _example/server.go
App Engine
In order to use this on Google App Engine, you need to create an instance with a custom *http.Client
provided by urlfetch.
oid := openid.NewOpenID(urlfetch.Client(appengine.NewContext(r)))
oid.RedirectURL(...)
oid.Verify(...)
License
Distributed under the Apache v2.0 license.
Libraries
Here is a set of libraries I found on GitHub that could make using this library easier depending on your backends. I haven't tested them, this list is for reference only, and in no particular order:
- Gacnt/myopenid "A Yohcop-Openid Nonce/Discovery storage replacement", using MySQL.
- Gacnt/sqlxid "An SQLX Adapter for Nonce / Discovery Cache store"
- Gacnt/gormid "Use GORM (Go Object Relational Mapping) to store OpenID DiscoveryCache / Nonce in a database"
- hectorj/mysqlOpenID "MySQL OpenID is a package to replace the in memory storage of discoveryCache and nonceStore."