這是我的第一篇文章。我會盡力並完成。我正在使用谷歌oAuth在Meteor創建一個應用程序。我使用下列程序包:流星谷歌oAuth刷新accessToken無需重新登錄
accounts-ui
accounts-google
service-configuration
google-config-ui
在我login.js我:
Template.login.events({
'click #googleLoginButton': function() {
Meteor.loginWithGoogle(
{ requestPermissions: ['email', 'profile'],
requestOfflineToken: 'true'
}
);
}
});
我得到了在蒙戈如下:
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"
}
}
在服務器/ init.js我有:(我通過settings.json傳遞google項目信息)
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);
}
所以事情似乎正在起作用。我可以登錄/註銷,當我登錄時,我會獲得新的令牌。我在其他地方使用accessToken進行api呼叫。我遇到的問題是一小時後令牌過期並且API調用開始失敗。
我想刷新accessToken就在它過期之前,似乎無法弄清楚如何。我還想在24小時後強制註銷,因此令牌不會永久刷新。
任何援助,如果讚賞。
我覺得這已經回答了: https://stackoverflow.com/questions/32764769/meteor-accounts-google-token-expires –
的可能的複製[流星賬戶,谷歌標記過期](https://開頭stackoverflow.com/questions/32764769/meteor-accounts-google-token-expires) –