Ver Fonte

companion-client: use platform agnositc storage to store auth token

Ifedapo Olarewaju há 6 anos atrás
pai
commit
eabf6f6576

+ 4 - 3
packages/@uppy/companion-client/src/Provider.js

@@ -14,16 +14,17 @@ module.exports = class Provider extends RequestClient {
     this.authProvider = opts.authProvider || this.provider
     this.name = this.opts.name || _getName(this.id)
     this.tokenKey = `companion-${this.id}-auth-token`
+    this.storage = opts.storage || localStorage
   }
 
   get defaultHeaders () {
-    return Object.assign({}, super.defaultHeaders, {'uppy-auth-token': localStorage.getItem(this.tokenKey)})
+    return Object.assign({}, super.defaultHeaders, {'uppy-auth-token': this.storage.getItem(this.tokenKey)})
   }
 
   // @todo(i.olarewaju) consider whether or not this method should be exposed
   setAuthToken (token) {
     // @todo(i.olarewaju) add fallback for OOM storage
-    localStorage.setItem(this.tokenKey, token)
+    this.storage.setItem(this.tokenKey, token)
   }
 
   checkAuth () {
@@ -48,7 +49,7 @@ module.exports = class Provider extends RequestClient {
   logout (redirect = location.href) {
     return this.get(`${this.id}/logout?redirect=${redirect}`)
       .then((res) => {
-        localStorage.removeItem(this.tokenKey)
+        this.storage.removeItem(this.tokenKey)
         return res
       })
   }

+ 1 - 0
packages/@uppy/dropbox/src/index.js

@@ -20,6 +20,7 @@ module.exports = class Dropbox extends Plugin {
     this.provider = new Provider(uppy, {
       serverUrl: this.opts.serverUrl,
       serverHeaders: this.opts.serverHeaders,
+      storage: this.opts.storage,
       provider: 'dropbox'
     })
 

+ 1 - 0
packages/@uppy/google-drive/src/index.js

@@ -23,6 +23,7 @@ module.exports = class GoogleDrive extends Plugin {
     this.provider = new Provider(uppy, {
       serverUrl: this.opts.serverUrl,
       serverHeaders: this.opts.serverHeaders,
+      storage: this.opts.storage,
       provider: 'drive',
       authProvider: 'google'
     })

+ 1 - 0
packages/@uppy/instagram/src/index.js

@@ -20,6 +20,7 @@ module.exports = class Instagram extends Plugin {
     this.provider = new Provider(uppy, {
       serverUrl: this.opts.serverUrl,
       serverHeaders: this.opts.serverHeaders,
+      storage: this.opts.storage,
       provider: 'instagram',
       authProvider: 'instagram'
     })