Skip to content

doug/gserviceauth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

gserviceauth

This is here for posterity purposes now that jwt is actually in goauth2

INSTEAD USE:

https://code.google.com/p/goauth2/

go get code.google.com/p/goauth2/oauth

Get your service email and your p12 private key from the Google API Console. For now it can't read p12 files so strip them to just the rsa key with openssl openssl pkcs12 -in file.p12 -nocerts -out key.pem -nodes then delete the extra text

Then:

package main

import (
  "code.google.com/p/goauth2/oauth/jwt"
  "flag"
  "fmt"
  "http"
  "io/ioutil"
)

var (
  serviceEmail = flag.String("service_email", "", "OAuth service email.")
  keyPath      = flag.String("key_path", "key.pem", "Path to unencrypted RSA private key file.")
  scope        = flag.String("scope", "", "Space separated scopes.")
)

func fetchToken() (string, error) {
    // Read the pem file bytes for the private key.
    keyBytes, err := ioutil.ReadFile(*keyPath)
    if err != nil {
        return "", err
    }

    t := jwt.NewToken(*serviceEmail, *scope, keyBytes)
    c := &http.Client{}

    // Get the access token.
    o, err := t.Assert(c)
    if err != nil {
        return "", err
    }
    return o.AccessToken, nil
}

This was a library for jwt flow auth before one was added oauth2

About

DEPRECATED instead use https://code.google.com/p/goauth2/ for jwt service auth and google

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages