Skip to content

Commit 8423d4f

Browse files
committedOct 12, 2023
fix: delete auth from proper location on logout
1 parent ef69d36 commit 8423d4f

File tree

2 files changed

+22
-19
lines changed

2 files changed

+22
-19
lines changed
 

‎lib/commands/logout.js

+6-3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ class Logout extends BaseCommand {
1919

2020
const auth = getAuth(reg, this.npm.flatOptions)
2121

22+
const level = this.npm.config.find(`${auth.regKey}:${auth.authKey}`)
23+
24+
// find the config level and only delete from there
2225
if (auth.token) {
2326
log.verbose('logout', `clearing token for ${reg}`)
2427
await npmFetch(`/-/user/token/${encodeURIComponent(auth.token)}`, {
@@ -34,12 +37,12 @@ class Logout extends BaseCommand {
3437
}
3538

3639
if (scope) {
37-
this.npm.config.delete(regRef, 'user')
40+
this.npm.config.delete(regRef, level)
3841
}
3942

40-
this.npm.config.clearCredentialsByURI(reg)
43+
this.npm.config.clearCredentialsByURI(reg, level)
4144

42-
await this.npm.config.save('user')
45+
await this.npm.config.save(level)
4346
}
4447
}
4548
module.exports = Logout

‎workspaces/config/lib/index.js

+16-16
Original file line numberDiff line numberDiff line change
@@ -774,29 +774,29 @@ class Config {
774774
await chmod(conf.source, mode)
775775
}
776776

777-
clearCredentialsByURI (uri) {
777+
clearCredentialsByURI (uri, level = 'user') {
778778
const nerfed = nerfDart(uri)
779779
const def = nerfDart(this.get('registry'))
780780
if (def === nerfed) {
781-
this.delete(`-authtoken`, 'user')
782-
this.delete(`_authToken`, 'user')
783-
this.delete(`_authtoken`, 'user')
784-
this.delete(`_auth`, 'user')
785-
this.delete(`_password`, 'user')
786-
this.delete(`username`, 'user')
781+
this.delete(`-authtoken`, level)
782+
this.delete(`_authToken`, level)
783+
this.delete(`_authtoken`, level)
784+
this.delete(`_auth`, level)
785+
this.delete(`_password`, level)
786+
this.delete(`username`, level)
787787
// de-nerf email if it's nerfed to the default registry
788-
const email = this.get(`${nerfed}:email`, 'user')
788+
const email = this.get(`${nerfed}:email`, level)
789789
if (email) {
790-
this.set('email', email, 'user')
790+
this.set('email', email, level)
791791
}
792792
}
793-
this.delete(`${nerfed}:_authToken`, 'user')
794-
this.delete(`${nerfed}:_auth`, 'user')
795-
this.delete(`${nerfed}:_password`, 'user')
796-
this.delete(`${nerfed}:username`, 'user')
797-
this.delete(`${nerfed}:email`, 'user')
798-
this.delete(`${nerfed}:certfile`, 'user')
799-
this.delete(`${nerfed}:keyfile`, 'user')
793+
this.delete(`${nerfed}:_authToken`, level)
794+
this.delete(`${nerfed}:_auth`, level)
795+
this.delete(`${nerfed}:_password`, level)
796+
this.delete(`${nerfed}:username`, level)
797+
this.delete(`${nerfed}:email`, level)
798+
this.delete(`${nerfed}:certfile`, level)
799+
this.delete(`${nerfed}:keyfile`, level)
800800
}
801801

802802
setCredentialsByURI (uri, { token, username, password, email, certfile, keyfile }) {

0 commit comments

Comments
 (0)
Please sign in to comment.