javascript - Kunde inte ladda standardreferenserna? (Node.js Google Compute Engine-handledning)
SITUATION:
Jag följer denna handledning: https://cloud.google.com/nodejs/tutorials/bookshelf-on-compute-engine
Allt fungerar bra tills jag kör npm start och går till:
http://localhost:8080
Jag möts av följande text på den tomma sidan:
Could not load the default credentials. Browse to https://developers.google.com/accounts/docs/application-default-credentials for more information.
Vilket inte alls är logiskt eftersom jag använder OAuth. Jag följde länken och läste sidan, men jag har inget GOOGLE-APPLICATION-CREDENTIALS-fält någonstans, och inget om det i handledningen.
FRÅGA:
Kan du vänligen upprepa stegen och berätta om du får samma resultat?
(tar 5 minuter)
Om inte, vad kunde jag ha gjort fel?
Svar #1
Ja, jag hade samma fel. Det är irriterande eftersom Google Cloud Platforms dokumentation för deras "komma igång"-bokhyllestutorial inte nämner detta någonstans. Vilket betyder att varje ny utvecklare som försöker denna tutorial kommer att se detta fel.
Läs detta: https://developers.google.com/identity/protocols/application-default-credentials
Jag löste detta problem genom att köra: gcloud auth application-default login
För att köra detta gcloud auth application-default login Besök: https://cloud.google.com/sdk/install 1) Du måste installera SDK på din dator 2) Det kommer att göra det möjligt för dig att köra koden 3) Logga in på ditt associerade Gmail-konto, sedan är du redo att börja!
Detta kommer att få dig att logga in, och efter det kommer din kod lokalt att använda den autentiseringen.
Svar #2
Det finns 2 lösningar för detta problem. Ett alternativ, som nämnts av andra, är att använda gcloud auth application-default login
Det andra alternativet är att ställa in miljövariabeln GOOGLE_APPLICATION_CREDENTIALS. Den ska peka på en fil som definierar autentiseringsuppgifterna. För att få denna fil behöver du följa dessa steg:
Gå till sidan för API-konsolens referenser.
Från projektets rullgardinsmeny, välj ditt projekt.
På sidan Referenser, välj rullgardinsmenyn Skapa referenser och sedan välj Nyckel för tjänstekonto.
Från rullgardinsmenyn för servicekontot, välj ett befintligt servicekonto eller skapa ett nytt.
För Nyckeltyp, välj alternativet JSON-nyckel, och välj sedan Skapa. Filen laddas automatiskt ner till din dator.
Lägg *.json-filen som du just laddade ner i en valfri katalog.
Denna katalog måste vara privat (du kan inte låta någon få tillgång till den), men den ska vara åtkomlig för din webbserverkod.
Ställ in miljövariabeln GOOGLE_APPLICATION_CREDENTIALS till sökvägen för den nedladdade JSON-filen.
Se https://developers.google.com/identity/protocols/application-default-credentials för detaljer
Svar #3
Jag stod inför samma problem. Det löstes med följande kommando.
gcloud auth application-default login
Det lagrar standard gcloud-molnuppgifter på ditt system och använder samma.
Svar #4
Skapa en tjänstekonto-nyckel och ladda ner json-filen. https://console.cloud.google.com/apis/credentials/serviceaccountkey
Lägg till detta i din ENV-fil
GOOGLE_APPLICATION_CREDENTIALS = "<PATH_TO_SERVICE_ACCOUNT_JSON_FILE>"
T.ex:
GOOGLE_APPLICATION_CREDENTIALS=/Users/hello/Documents/ssh/my-10ebbbc8b3df.json
