Help documentation

OAuth Overview

Go implements the OAuth protocol to authorize third party application's (client's) request to access data on the Go server.

What is OAuth?

OAuth is an open-source specification for building a framework for allowing a third-party app (the “client”) to access protected resources from another application (the “provider,” or “resource owner”) at the request of a “user” of the client app. Oauth allows the user to enter his user credentials (ex. username and password) only to the provider app, which then grants the client app permission to view the protected resources on behalf of the user.

Common terms:

  • Provider/Resource Owner – the app that hosts the protected resource. An example is Twitter which uses OAuth as the protocol for all its clients. In the context of this document, Go is the provider/resource owner.
  • Client – the app that requests to see the resource data on behalf of the user. Any Twitter client that shows tweets is an example of this. An HTML gadget that displays the status of all Go pipelines running on a server is also an example of a client.
  • User/end user – the entity who initiates the OAuth flow to allow the client to access protected data from the provider.
  • Client id/client secret – Often, provider apps will maintain a list of clients that are allowed to access their data. Client apps can be identified in a number of ways, including with an id and a secret.

OAuth Authorization Workflow

An overview of the basic OAuth workflow can be found at Beginner's guide to OAuth.

Manage OAuth Clients

Create a new OAuth client

Edit an existing OAuth client

Delete an existing OAuth client

Consume Go Gadgets

If you are a third-part client developer and want to consume Go gadgets, the following sections will provide you an overview of what you need to do to consume gadgets using OAuth.

Request for authorization code

Get access token

Use the access token