cloudflare-workers-and-google-oauth
Advanced tools
Comparing version 1.1.0 to 1.1.1
{ | ||
"name": "cloudflare-workers-and-google-oauth", | ||
"version": "1.1.0", | ||
"version": "1.1.1", | ||
"description": "Enables easier interfacing with GCS OAuth API for use in Cloudflare Workers", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -11,8 +11,8 @@ # Google OAuth & Cloudflare Workers | ||
``` | ||
// import the lib | ||
This is a fully working code snippet showing how to access Google Cloud Storage (GCS) and returning an image to the browser. | ||
```javascript | ||
import GoogleAuth, { GoogleKey } from 'cloudflare-workers-and-google-oauth' | ||
// ensure you have global access to the environment variable representing the PEM-encoded secret | ||
// you downloaded from Google Cloud dashboard for your service account | ||
// Add secret using Wranlger or the Cloudflare dash | ||
export interface Env { | ||
@@ -22,5 +22,29 @@ GCP_SERVICE_ACCOUNT: string; | ||
... | ||
export default { | ||
async fetch( | ||
request: Request, | ||
env: Env, | ||
ctx: ExecutionContext | ||
): Promise<Response> { | ||
const scopes: string[] = ['https://www.googleapis.com/auth/devstorage.full_control'] | ||
const googleAuth: GoogleKey = JSON.parse(env.GCP_SERVICE_ACCOUNT) | ||
// Initialize the service | ||
const oauth = new GoogleAuth(googleAuth, scopes) | ||
const token = await oauth.getGoogleAuthToken() | ||
console.log(token) | ||
// Example with Google Cloud Storage | ||
const res = await fetch('https://storage.googleapis.com/storage/v1/b/MY_BUCKET/o/MY_OBJECT.png?alt=media', { | ||
method: 'GET', | ||
headers: { | ||
'Authorization': `Bearer ${token}`, | ||
'Content-Type': 'image/png', | ||
'Accept': 'image/png', | ||
}, | ||
}) | ||
return new Response(res.body, { headers: { 'Content-Type': 'image/png' } }); | ||
}, | ||
}; | ||
``` |
7244
49