Skip to content

Commit b75bc42

Browse files
authored
feat(User): #refreshSessionToken (#435)
1 parent e93d9c2 commit b75bc42

File tree

3 files changed

+26
-44
lines changed

3 files changed

+26
-44
lines changed

src/request.js

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -28,47 +28,6 @@ const sign = (key, isMasterKey) => {
2828
return `${signature},${now}`;
2929
};
3030

31-
const checkRouter = (router) => {
32-
const routerList = [
33-
'batch',
34-
'classes',
35-
'files',
36-
'date',
37-
'functions',
38-
'call',
39-
'login',
40-
'push',
41-
'search/select',
42-
'requestPasswordReset',
43-
'requestEmailVerify',
44-
'requestPasswordResetBySmsCode',
45-
'resetPasswordBySmsCode',
46-
'requestMobilePhoneVerify',
47-
'requestLoginSmsCode',
48-
'verifyMobilePhone',
49-
'requestSmsCode',
50-
'verifySmsCode',
51-
'users',
52-
'usersByMobilePhone',
53-
'cloudQuery',
54-
'qiniu',
55-
'fileTokens',
56-
'statuses',
57-
'bigquery',
58-
'search/select',
59-
'subscribe/statuses/count',
60-
'subscribe/statuses',
61-
'installations',
62-
];
63-
64-
if (routerList.indexOf(router) === -1 &&
65-
!(/users\/[^\/]+\/updatePassword/.test(router)) &&
66-
!(/users\/[^\/]+\/friendship\/[^\/]+/.test(router))
67-
) {
68-
throw new Error(`Bad router: ${router}.`);
69-
}
70-
};
71-
7231
let requestsCount = 0;
7332

7433
const ajax = (method, resourceUrl, data, headers = {}, onprogress) => {
@@ -314,8 +273,6 @@ const AVRequest = (route, className, objectId, method, dataObject = {}, authOpti
314273
throw new Error('You must specify a AppKey using AV.init()');
315274
}
316275

317-
checkRouter(route);
318-
319276
if (!getServerURLPromise) {
320277
return Promise.reject(new Error('Not initialized'));
321278
}

src/user.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -579,10 +579,24 @@ module.exports = function(AV) {
579579
* Get sessionToken of current user.
580580
* @return {String} sessionToken
581581
*/
582-
getSessionToken: function() {
582+
getSessionToken() {
583583
return this._sessionToken;
584584
},
585585

586+
/**
587+
* Refresh sessionToken of current user.
588+
* @since 2.1.0
589+
* @param {AuthOptions} [options]
590+
* @return {Promise.<AV.User>} user with refreshed sessionToken
591+
*/
592+
refreshSessionToken(options) {
593+
return AVRequest(`users/${this.id}/refreshSessionToken`, null, null, 'PUT', null, options)
594+
.then(response => {
595+
this._finishFetch(response);
596+
return this;
597+
});
598+
},
599+
586600
/**
587601
* Get this user's Roles.
588602
* @param {AuthOptions} [options]

test/user.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,17 @@ describe("User", function() {
233233
});
234234
});
235235

236+
describe('refreshSessionToken', () => {
237+
it('User#refreshSessionToken', () => {
238+
const user = AV.User.current();
239+
const prevSessionToken = user.getSessionToken();
240+
return user.refreshSessionToken().then(user => {
241+
user.getSessionToken().should.be.a.String();
242+
user.getSessionToken().should.not.be.eql(prevSessionToken);
243+
})
244+
});
245+
})
246+
236247
describe('currentUser disabled', function() {
237248
var user, originalUser;
238249

0 commit comments

Comments
 (0)