connect
connect copied to clipboard
Model - AccessToken - refresh
This currently does
AccessToken.insert({
iss: settings.issuer,
uid: at.uid,
cid: at.cid,
ei: at.ei,
rt: random(settings.refresh_token_bytes_range)(),
scope: at.scope
}, function (err, token) {
if (err) { return callback(err) }
// we should destroy the current token
AccessToken.delete(at.at, function (err) {
if (err) { return callback(err) }
callback(null, token)
})
})
The problem with doing the delete after the insert is that if for example the rt or perhaps even the at is the same as before then it would be deleted right after being created - or worse perhaps parts could be deleted, such as the rt.
In my case this is happening because I am preserving the rt but it could happen in the general case too, although unlikely.
I also have problem with refresh tokens, but I don't see how rt or at can be same. Will be great if you provide unit test.
Can't remember the reason, but I needed to keep the refresh token the same which lead to a bug for me with my refresh token being deleted after the new access token was created. With the random refresh token this should not happen.