profile updates
This commit is contained in:
		
							parent
							
								
									980895992a
								
							
						
					
					
						commit
						ece06b8463
					
				
							
								
								
									
										10
									
								
								index.html
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								index.html
									
									
									
									
									
								
							@ -149,7 +149,15 @@
 | 
			
		||||
        <p>A (mostly) client-side authentication and authorization framework for decentralized peer-to-peer and federated networks.
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="row">
 | 
			
		||||
        <a class="btn btn-primary" href="playground.html">Enter the OAuth3 Playground</a>
 | 
			
		||||
        <div>
 | 
			
		||||
          <h2>OAuth3 Test Bed</h2>
 | 
			
		||||
          <!--
 | 
			
		||||
          <a class="btn btn-primary" href="azp.html">Demo Authorized Party</a>
 | 
			
		||||
          <a class="btn btn-primary" href="issuer.html">Demo Issuer</a>
 | 
			
		||||
          -->
 | 
			
		||||
          <a class="btn btn-primary" href="playground.html">Demo Authorized Party</a>
 | 
			
		||||
          <a class="btn btn-primary" href="playground.html">Demo Issuer</a>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div>
 | 
			
		||||
          <h2>Private, Peer-to-Peer, Anonymous: Pick any two... at a time</h2>
 | 
			
		||||
 | 
			
		||||
@ -94,6 +94,9 @@ $(function () {
 | 
			
		||||
      // deprecated
 | 
			
		||||
      'oauth3_authn': "Basic secure authentication"
 | 
			
		||||
    , 'auth@oauth3.org': "Basic secure authentication"
 | 
			
		||||
    , 'profile@oauth3.org': "Basic profile information"
 | 
			
		||||
    , 'profile.email@oauth3.org': "Email address"
 | 
			
		||||
    , 'profile.phone@oauth3.org': "Phone number"
 | 
			
		||||
    , 'wallet': "Access to payments and subscriptions"
 | 
			
		||||
    , 'bucket': "Access to file storage"
 | 
			
		||||
    , 'db': "Access to app data"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										137
									
								
								js/playground.js
									
									
									
									
									
								
							
							
						
						
									
										137
									
								
								js/playground.js
									
									
									
									
									
								
							@ -4,27 +4,27 @@
 | 
			
		||||
  window.ngOauth3App = angular.module('oauth3Playground', [ 'oauth3.org' ])
 | 
			
		||||
  //window.ngOauth3App = angular.module('oauth3Playground', [ 'ui.router' ])
 | 
			
		||||
/*
 | 
			
		||||
	ngOauth3App.config(function($stateProvider) {
 | 
			
		||||
		var helloState = {
 | 
			
		||||
			name: 'hello',
 | 
			
		||||
			url: '/hello',
 | 
			
		||||
			template: '<h3>hello world!</h3>'
 | 
			
		||||
		}
 | 
			
		||||
  ngOauth3App.config(function($stateProvider) {
 | 
			
		||||
    var helloState = {
 | 
			
		||||
      name: 'hello',
 | 
			
		||||
      url: '/hello',
 | 
			
		||||
      template: '<h3>hello world!</h3>'
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		var aboutState = {
 | 
			
		||||
			name: 'about',
 | 
			
		||||
			url: '/about',
 | 
			
		||||
			template: '<h3>Its the UI-Router hello world app!</h3>'
 | 
			
		||||
		}
 | 
			
		||||
    var aboutState = {
 | 
			
		||||
      name: 'about',
 | 
			
		||||
      url: '/about',
 | 
			
		||||
      template: '<h3>Its the UI-Router hello world app!</h3>'
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		$stateProvider.state(helloState);
 | 
			
		||||
		$stateProvider.state(aboutState);
 | 
			
		||||
	});
 | 
			
		||||
    $stateProvider.state(helloState);
 | 
			
		||||
    $stateProvider.state(aboutState);
 | 
			
		||||
  });
 | 
			
		||||
*/
 | 
			
		||||
	.controller('PlaygroundCtrl', [ '$timeout', 'azp@oauth3.org', function ($timeout, OAUTH3) {
 | 
			
		||||
  .controller('PlaygroundCtrl', [ '$timeout', 'azp@oauth3.org', function ($timeout, OAUTH3) {
 | 
			
		||||
    // NOTE: This OAUTH3 is the same as window.OAUTH3, but with angular's promise injected
 | 
			
		||||
    // TODO: how to load more than one version of oauth3 on the page (i.e. a vanilla version without angular entaglement)
 | 
			
		||||
		var vm = this;
 | 
			
		||||
    var vm = this;
 | 
			
		||||
 | 
			
		||||
    vm.framework = 'none';
 | 
			
		||||
    vm.clientUri = OAUTH3.clientUri({ host: window.location.host });
 | 
			
		||||
@ -33,13 +33,18 @@
 | 
			
		||||
    // map of things being debounced presently
 | 
			
		||||
    vm.debouncing = {};
 | 
			
		||||
    vm.defaults = { provider: vm.conf.provider_uri, directives: null };
 | 
			
		||||
		vm.defaults.scopes = [
 | 
			
		||||
			{ name: 'oauth3_authn', desc: "Basic secure authentication", checked: true }
 | 
			
		||||
			//{ name: 'authn@oauth3.org', desc: "Basic secure authentication" }
 | 
			
		||||
		, { name: 'photos@daplie.com', desc: "Access to photos" }
 | 
			
		||||
		, { name: 'dns', desc: "DNS records (A/AAAA, TXT, SRV, MX, etc)" }
 | 
			
		||||
		, { name: '*', desc: "FULL ACCOUNT ACCESS" }
 | 
			
		||||
		];
 | 
			
		||||
    vm.defaults.scopes = [
 | 
			
		||||
      { name: 'profile@oauth3.org', desc: "Basic profile information", checked: true }
 | 
			
		||||
    , { name: 'oauth3_authn', desc: "Basic secure authentication", checked: true }
 | 
			
		||||
      //{ name: 'authn@oauth3.org', desc: "Basic secure authentication" }
 | 
			
		||||
    , { name: 'photos@daplie.com', desc: "Access to photos" }
 | 
			
		||||
    , { name: 'profile@oauth3.org', desc: "Access to basic profile info such as username, display_name, etc" }
 | 
			
		||||
    , { name: 'dns', desc: "DNS records (A/AAAA, TXT, SRV, MX, etc)" }
 | 
			
		||||
    , { name: '*', desc: "FULL ACCOUNT ACCESS" }
 | 
			
		||||
    //, 'auth@oauth3.org': "Basic secure authentication"
 | 
			
		||||
    //, 'profile.email@oauth3.org': "Email address"
 | 
			
		||||
    //, 'profile.phone@oauth3.org': "Phone number"
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    vm.form = {};
 | 
			
		||||
    vm.form.id = 'coolaj86@gmail.com';
 | 
			
		||||
@ -420,6 +425,44 @@
 | 
			
		||||
        vm.session = session;
 | 
			
		||||
      });
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    vm.urls.profile = {};
 | 
			
		||||
    vm.api.urls.profile_get = function () {
 | 
			
		||||
      if (!vm.directives || !vm.accessToken) { return; }
 | 
			
		||||
      vm.urls.profile_get = OAUTH3.urls.accounts.get(vm.directives, vm.ropSession);
 | 
			
		||||
    };
 | 
			
		||||
    vm.api.profile = {};
 | 
			
		||||
    vm.api.profile_get = function () {
 | 
			
		||||
      console.log('you tickled me!', vm.ropSession);
 | 
			
		||||
      vm.api.urls.profile_get();
 | 
			
		||||
      return OAUTH3.requests.accounts.get(vm.directives, vm.ropSession).then(function (resp) {
 | 
			
		||||
        console.log('you tickled me twice!');
 | 
			
		||||
        if (!resp.data) {
 | 
			
		||||
          resp = { status: 0, data: resp };
 | 
			
		||||
        }
 | 
			
		||||
        vm.responses.profile_get = resp;
 | 
			
		||||
      }, function (err) {
 | 
			
		||||
        console.error('Could not get profile:');
 | 
			
		||||
        console.error(err);
 | 
			
		||||
        vm.error = err;
 | 
			
		||||
      });
 | 
			
		||||
    };
 | 
			
		||||
    vm.api.profile_set = function () {
 | 
			
		||||
      console.log('you tickled me!', vm.ropSession);
 | 
			
		||||
      vm.api.urls.profile_set();
 | 
			
		||||
      return OAUTH3.requests.accounts.set(vm.directives, vm.ropSession).then(function (resp) {
 | 
			
		||||
        console.log('you tickled me twice!');
 | 
			
		||||
        if (!resp.data) {
 | 
			
		||||
          resp = { status: 0, data: resp };
 | 
			
		||||
        }
 | 
			
		||||
        vm.responses.profile_set = resp;
 | 
			
		||||
      }, function (err) {
 | 
			
		||||
        console.error('Could not set profile:');
 | 
			
		||||
        console.error(err);
 | 
			
		||||
        vm.error = err;
 | 
			
		||||
      });
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    vm.api.authz = {};
 | 
			
		||||
    vm.api.authz._grantsOpts = function () {
 | 
			
		||||
      return vm.api.authz._grantsOpts_ = {
 | 
			
		||||
@ -456,35 +499,35 @@
 | 
			
		||||
    vm.fn.updateScopes();
 | 
			
		||||
 | 
			
		||||
    vm.apistr = '';
 | 
			
		||||
		Object.keys(OAUTH3).forEach(function (key) {
 | 
			
		||||
			var thingy = OAUTH3[key];
 | 
			
		||||
    Object.keys(OAUTH3).forEach(function (key) {
 | 
			
		||||
      var thingy = OAUTH3[key];
 | 
			
		||||
 | 
			
		||||
			if ('_' === key[0] || -1 !== [ 'create', '_browser', '_defaultStorage', 'hooks', '_hooks', '_digest' ].indexOf(key)) {
 | 
			
		||||
      if ('_' === key[0] || -1 !== [ 'create', '_browser', '_defaultStorage', 'hooks', '_hooks', '_digest' ].indexOf(key)) {
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
			if ('function' === typeof thingy) {
 | 
			
		||||
				vm.apistr += thingy.toString().split(/\n/)[0].replace('function ', 'OAUTH3.' + key).replace(/\s+{\s*/, '') + '\n';
 | 
			
		||||
			}
 | 
			
		||||
      if ('function' === typeof thingy) {
 | 
			
		||||
        vm.apistr += thingy.toString().split(/\n/)[0].replace('function ', 'OAUTH3.' + key).replace(/\s+{\s*/, '') + '\n';
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
			if ('object' === typeof thingy) {
 | 
			
		||||
				Object.keys(thingy).forEach(function (key2) {
 | 
			
		||||
					var thingy2 = thingy[key2];
 | 
			
		||||
					if ('function' === typeof thingy2) {
 | 
			
		||||
						vm.apistr += thingy2.toString().split(/\n/)[0].replace('function ', 'OAUTH3.' + key + '.' + key2).replace(/\s+{\s*/, '') + '\n';
 | 
			
		||||
					}
 | 
			
		||||
      if ('object' === typeof thingy) {
 | 
			
		||||
        Object.keys(thingy).forEach(function (key2) {
 | 
			
		||||
          var thingy2 = thingy[key2];
 | 
			
		||||
          if ('function' === typeof thingy2) {
 | 
			
		||||
            vm.apistr += thingy2.toString().split(/\n/)[0].replace('function ', 'OAUTH3.' + key + '.' + key2).replace(/\s+{\s*/, '') + '\n';
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
					if ('object' === typeof thingy2) {
 | 
			
		||||
						Object.keys(thingy2).forEach(function (key3) {
 | 
			
		||||
							var thingy3 = thingy2[key3];
 | 
			
		||||
							if ('function' === typeof thingy3) {
 | 
			
		||||
								vm.apistr += thingy3.toString().split(/\n/)[0].replace('function ', 'OAUTH3.' + key + '.' + key2 + '.' + key3).replace(/\s+{\s*/, '') + '\n';
 | 
			
		||||
							}
 | 
			
		||||
						});
 | 
			
		||||
					}
 | 
			
		||||
          if ('object' === typeof thingy2) {
 | 
			
		||||
            Object.keys(thingy2).forEach(function (key3) {
 | 
			
		||||
              var thingy3 = thingy2[key3];
 | 
			
		||||
              if ('function' === typeof thingy3) {
 | 
			
		||||
                vm.apistr += thingy3.toString().split(/\n/)[0].replace('function ', 'OAUTH3.' + key + '.' + key2 + '.' + key3).replace(/\s+{\s*/, '') + '\n';
 | 
			
		||||
              }
 | 
			
		||||
            });
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
				});
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
	} ] );
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  } ] );
 | 
			
		||||
}());
 | 
			
		||||
 | 
			
		||||
@ -146,8 +146,11 @@ ng-if="'none' === vm.framework || 'jquery' === vm.framework"></span><span ng-if=
 | 
			
		||||
            <pre><code>OAUTH3.discover("<span ng-bind="vm.form.provider"></span>", opts);</code></pre>
 | 
			
		||||
            <pre ng-if="vm.urls.discovery"><code><span ng-bind="vm.urls.discovery"></span></code></pre>
 | 
			
		||||
 | 
			
		||||
            <button ng-if="vm.directives" class="btn btn-default" ng-click="vm.fn.clearDirectives()">[X]</button>
 | 
			
		||||
            <pre ng-if="vm.directives"><code><span ng-bind="vm.directives | json"></span></code></pre>
 | 
			
		||||
            <div ng-if="vm.directives">
 | 
			
		||||
              <button ng-if="vm.state.hideDirectives" class="btn btn-link" ng-click="vm.state.hideDirectives = !vm.state.hideDirectives">show directives</button>
 | 
			
		||||
              <button ng-if="!vm.state.hideDirectives" class="btn btn-link" ng-click="vm.state.hideDirectives = !vm.state.hideDirectives">hide directives</button>
 | 
			
		||||
              <pre ng-if="!vm.state.hideDirectives"><code><span ng-bind="vm.directives | json"></span></code></pre>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
@ -215,7 +218,7 @@ ng-if="'none' === vm.framework || 'jquery' === vm.framework"></span><span ng-if=
 | 
			
		||||
            (This is the URL of the iFrame that completes token refreshes. And it occurs over iFrame rather than API so that no server is required.)
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="col-md-9">
 | 
			
		||||
            <button class="btn btn-default" ng-click="vm.api.refreshToken()" ng-disabled="!vm.directives || !vm.validated.provider">Open Logout Dialog</button>
 | 
			
		||||
            <button class="btn btn-default" ng-click="vm.api.refreshToken()" ng-disabled="!vm.directives || !vm.validated.provider">Refresh Token</button>
 | 
			
		||||
 | 
			
		||||
            <pre><code>OAUTH3.urls.refreshToken(directives, opts);</code></pre>
 | 
			
		||||
            <pre ng-if="vm.urls.refreshToken"><code><span ng-bind="vm.urls.refreshToken"></span></code></pre>
 | 
			
		||||
@ -316,6 +319,34 @@ ng-if="'none' === vm.framework || 'jquery' === vm.framework"></span><span ng-if=
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="row" ng-if="vm.validated.provider">
 | 
			
		||||
          <br>
 | 
			
		||||
          <br>
 | 
			
		||||
          <div class="col-md-3">
 | 
			
		||||
            <strong>Profile</strong>
 | 
			
		||||
            <br>
 | 
			
		||||
            (this is the profile object)
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="col-md-9">
 | 
			
		||||
 | 
			
		||||
            <button class="btn btn-default" ng-click="vm.api.profile_get()" ng-disabled="!vm.accessToken">Get Profile</button>
 | 
			
		||||
 | 
			
		||||
            <pre><code><span ng-bind="vm.urls.profile_get.method"></span> <span ng-bind="vm.urls.profile_get.url"></span>
 | 
			
		||||
<span ng-if="vm.urls.profile_get.headers" ng-bind="vm.urls.profile_get.headers | json"></span>
 | 
			
		||||
<span ng-bind="vm.urls.profile_get.data | json"></span>
 | 
			
		||||
</code></pre>
 | 
			
		||||
 | 
			
		||||
            <pre ng-if="!vm.responses.profile_get"><code> ...
 | 
			
		||||
</code></pre>
 | 
			
		||||
 | 
			
		||||
            <pre ng-if="vm.responses.profile_get"><code><span ng-bind="vm.responses.profile_get.status"></span>
 | 
			
		||||
<span ng-if="vm.responses.profile_get.headers" ng-bind="vm.responses.profile_get.headers | json"></span>
 | 
			
		||||
<span ng-bind="vm.responses.profile_get.data | json"></span>
 | 
			
		||||
</code></pre>
 | 
			
		||||
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="row" ng-if="vm.validated.provider">
 | 
			
		||||
          <br>
 | 
			
		||||
          <br>
 | 
			
		||||
@ -346,7 +377,7 @@ ng-if="'none' === vm.framework || 'jquery' === vm.framework"></span><span ng-if=
 | 
			
		||||
            <pre><code>OAUTH3.jwt.decode(token);</code></pre>
 | 
			
		||||
 | 
			
		||||
            <textarea class="form-control" ng-model="vm.accessToken" ng-change="vm.api.jwt.decode()"></textarea>
 | 
			
		||||
            <button class="btn btn-default" ng-click="vm.api.jwt.decode()" ng-disabled="!vm.refreshToken">Decode Access Token</button>
 | 
			
		||||
            <button class="btn btn-default" ng-click="vm.api.jwt.decode()" ng-disabled="!vm.accessToken">Decode Access Token</button>
 | 
			
		||||
 | 
			
		||||
            <textarea ng-if="vm.refreshToken" class="form-control" ng-model="vm.refreshToken" ng-change="vm.api.jwt.decodeRefresh()"></textarea>
 | 
			
		||||
            <button ng-if="vm.refreshToken" class="btn btn-default" ng-click="vm.api.jwt.decodeRefresh()" ng-disabled="!vm.refreshToken">Decode Refresh Token</button>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user