Change: switch microsoft to code flow

This commit is contained in:
eight 2019-10-12 18:48:46 +08:00
parent 56242313d5
commit 49e8ef079e

View File

@ -23,12 +23,12 @@ const tokenManager = (() => {
scopes: ['https://www.googleapis.com/auth/drive.appdata'] scopes: ['https://www.googleapis.com/auth/drive.appdata']
}, },
onedrive: { onedrive: {
flow: 'token', flow: 'code',
clientId: '3864ce03-867c-4ad8-9856-371a097d47b1', clientId: '3864ce03-867c-4ad8-9856-371a097d47b1',
authURL: 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize', authURL: 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',
tokenURL: 'https://login.microsoftonline.com/common/oauth2/v2.0/token', tokenURL: 'https://login.microsoftonline.com/common/oauth2/v2.0/token',
redirect_uri: 'https://clngdbkpkpeebahjckkjfobafhncgmne.chromiumapp.org/', redirect_uri: 'https://clngdbkpkpeebahjckkjfobafhncgmne.chromiumapp.org/',
scopes: ['Files.ReadWrite.AppFolder'] scopes: ['Files.ReadWrite.AppFolder', 'offline_access']
} }
}; };
@ -70,12 +70,16 @@ const tokenManager = (() => {
return Promise.reject(new Error('no refresh token')); return Promise.reject(new Error('no refresh token'));
} }
const provider = AUTH[name]; const provider = AUTH[name];
return postQuery(provider.tokenURL, { const body = {
client_id: provider.clientId, client_id: provider.clientId,
client_secret: provider.clientSecret,
refresh_token: obj[k.REFRESH], refresh_token: obj[k.REFRESH],
grant_type: 'refresh_token' grant_type: 'refresh_token',
}) scope: provider.scopes.join(' ')
};
if (provider.clientSecret) {
body.client_secret = provider.clientSecret;
}
return postQuery(provider.tokenURL, body)
.then(result => { .then(result => {
if (!result.refresh_token) { if (!result.refresh_token) {
result.refresh_token = obj[k.REFRESH]; result.refresh_token = obj[k.REFRESH];