Dies ist mein erster Beitrag. Ich werde versuchen und vollständig sein. Ich erstelle eine App in Meteor, die Google oAuth verwendet. Ich verwende die folgenden Pakete:Meteor Google oAuth, um accessToken ohne erneute Anmeldung zu aktualisieren
accounts-ui
accounts-google
service-configuration
google-config-ui
In meinem login.js ich habe:
Template.login.events({
'click #googleLoginButton': function() {
Meteor.loginWithGoogle(
{ requestPermissions: ['email', 'profile'],
requestOfflineToken: 'true'
}
);
}
});
ich folgend in Mongo erhalten:
db.users.find({}).pretty();
{
"_id" : "9TjGEjEj4ocFhwHtS",
"createdAt" : ISODate("2017-10-11T17:38:07.400Z"),
"services" : {
"google" : {
"accessToken" : "ya29.-REDACTED-T9z",
"idToken" : "eyJhbGcj-REDACTED-LTg",
"scope" : [
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile"
],
"id" : "107113228066746203535",
"email" : "[email protected]",
"verified_email" : true,
"name" : "XXX XXX",
"given_name" : "XXX",
"family_name" : "XXX",
"picture" : "https://lh4.googleusercontent.com/.../photo.jpg",
"locale" : "en",
"gender" : "male",
"refreshToken" : "1/HG-REDACTED-oLq0USutc"
},
"resume" : {
"loginTokens" : [
{
"when" : ISODate("2017-10-11T21:47:38.471Z"),
"hashedToken" : "2lmOK-REDACTED-ptAyDnWo="
}
]
}
},
"profile" : {
"name" : "XXX XXX"
}
}
In dem Server/Init.js Ich habe: (Ich übermittle die Google-Projekt-Informationen über settings.json)
configureGoogle = function(config) {
ServiceConfiguration.configurations.remove({
service: "google"
});
ServiceConfiguration.configurations.insert({
service: "google",
clientId: googleConfig.clientId,
secret: googleConfig.secret
});
return;
};
if (googleConfig) {
console.log('Got settings for google', googleConfig)
configureGoogle(googleConfig);
}
So scheinen die Dinge zu funktionieren. Ich kann mich einloggen/raus und wenn ich mich anmelde bekomme ich neue Token. Ich benutze die accessToken für API-Anrufe an anderen Orten. Das Problem, das ich habe, ist, dass das Token nach einer Stunde abläuft und die API-Aufrufe fehlschlagen.
Ich möchte die accessToken kurz vor Ablauf aktualisieren und kann nicht herausfinden, wie. Ich möchte auch eine Abmeldung nach 24 Stunden erzwingen, damit das Token nicht für immer aktualisiert wird.
Jede Hilfe, wenn geschätzt.
Ich denke, dies wurde bereits beantwortet: https://stackoverflow.com/questions/32764769/meteor-accounts-google-token-expires –
Mögliche Duplikat [Meteor Konten-google Token Verfällt] (https: // stackoverflow.com/questions/32764769/meteor-accounts-google-token-expires) –