add helpers
This commit is contained in:
		
							parent
							
								
									ae97b30b6f
								
							
						
					
					
						commit
						b1ddf92e76
					
				| @ -930,4 +930,79 @@ | |||||||
|     OAUTH3.PromiseA = Promise; |     OAUTH3.PromiseA = Promise; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   // this is not necessary, but it's relatively small
 | ||||||
|  |   // and gives people the 3-line examples they love so much
 | ||||||
|  |   OAUTH3.create = function (location/*, opts*/) { | ||||||
|  |     if (!location) { | ||||||
|  |       location = OAUTH3._browser.window.location; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     return { | ||||||
|  |       _clientUri: OAUTH3.clientUri(location) | ||||||
|  |     , _providerUri: null | ||||||
|  |     , init: function (location) { | ||||||
|  |         var me = this; | ||||||
|  |         var p = OAUTH3.PromiseA.resolve(); | ||||||
|  | 
 | ||||||
|  |         if (location) { | ||||||
|  |           this._clientUri = OAUTH3.clientUri(location); | ||||||
|  |         } | ||||||
|  |         if (this._providerUri) { | ||||||
|  |           p = OAUTH3.discover(this._providerUri, { client_id: this._clientUri }).then(function (/*directives*/) { | ||||||
|  |             $('.js-signin').removeAttr('disabled'); | ||||||
|  |           }); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return OAUTH3.discover(this._clientUri, { client_id: this._clientUri }).then(function (clientDirectives) { | ||||||
|  |           me._clientDirectives = clientDirectives; | ||||||
|  |           return p.then(function () { | ||||||
|  |             return clientDirectives; | ||||||
|  |           }); | ||||||
|  |         }); | ||||||
|  |       } | ||||||
|  |     , setProvider: function (providerUri) { | ||||||
|  |         var me = this; | ||||||
|  |         me._providerUri = providerUri; | ||||||
|  |         return me.init().then(function () { | ||||||
|  |           // this should be synchronous the second time around
 | ||||||
|  |           return OAUTH3.discover(me._providerUri, { client_id: me._clientUri }).then(function (directives) { | ||||||
|  |             console.log("setProvider", directives); | ||||||
|  |             me._providerDirectives = directives; | ||||||
|  |             return directives; | ||||||
|  |           }); | ||||||
|  |         }); | ||||||
|  |       } | ||||||
|  |     , login: function (opts) { | ||||||
|  |         var me = this; | ||||||
|  |         opts = opts || {}; | ||||||
|  |         opts.client_uri = me._clientUri; | ||||||
|  | 
 | ||||||
|  |         console.log('login', me._providerDirectives); | ||||||
|  |         return OAUTH3.implicitGrant(me._providerDirectives, opts).then(function (session) { | ||||||
|  |           me._session = true; | ||||||
|  |           return session; | ||||||
|  |         }); | ||||||
|  |       } | ||||||
|  |     , session: function () { | ||||||
|  |         return JSON.parse(JSON.stringify(OAUTH3.hooks.session._getCached(this._providerUri))); | ||||||
|  |       } | ||||||
|  |     , request: function (preq) { | ||||||
|  |         preq.client_uri = this._clientUri; | ||||||
|  |         preq.client_id = this._clientUri; | ||||||
|  |         if (this._session) { | ||||||
|  |           preq.session = preq.session || OAUTH3.hooks.session._getCached(this._providerUri); | ||||||
|  |         } | ||||||
|  |         return OAUTH3.request(preq); | ||||||
|  |       } | ||||||
|  |     , logout: function (opts) { | ||||||
|  |         opts = opts || {}; | ||||||
|  |         opts.client_uri = this._clientUri; | ||||||
|  |         opts.client_id = this._clientUri; | ||||||
|  |         opts.session = OAUTH3.hooks.session._getCached(this._providerUri); | ||||||
|  | 
 | ||||||
|  |         return OAUTH3.logout(this._providerUri, opts); | ||||||
|  |       } | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
| }('undefined' !== typeof exports ? exports : window)); | }('undefined' !== typeof exports ? exports : window)); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user