ng-dynami-social-login
Version:
This is social login API for Angular 7.0.3 (Facebook, Google and Linkedin)
2 lines • 6.27 kB
JavaScript
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core"),require("rxjs"),require("@angular/common")):"function"==typeof define&&define.amd?define("ng-dynami-social-login",["exports","@angular/core","rxjs","@angular/common"],n):n(e["ng-dynami-social-login"]={},e.ng.core,e.rxjs,e.ng.common)}(this,function(e,n,i,t){"use strict";var o=function(){function e(){}return e.prototype.loadScript=function(e,n){if(!document.getElementById(e.name)){var t=document.createElement("script");t.async=!0,t.src=e.url,t.onload=n,"LINKEDIN"===e.name&&(t.async=!1,t.text=("api_key: "+e.id).replace("'","")),document.head.appendChild(t)}},e}(),r=function h(){},u=function v(){},a=function I(){},s=function(e,n){return(s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])})(e,n)};function c(e,n){function t(){this.constructor=e}s(e,n),e.prototype=null===n?Object.create(n):(t.prototype=n.prototype,new t)}var l=function(t){function i(e){var n=t.call(this)||this;return n.clientId=e,n.loginProviderObj=new u,n.loginProviderObj.id=e,n.loginProviderObj.name="facebook",n.loginProviderObj.url="https://connect.facebook.net/en_US/sdk.js",n}return c(i,t),i.prototype.initialize=function(){var n=this;return new Promise(function(t,e){n.loadScript(n.loginProviderObj,function(){FB.init({appId:n.clientId,autoLogAppEvents:!0,cookie:!0,xfbml:!0,version:"v2.10"}),FB.AppEvents.logPageView(),FB.getLoginStatus(function(e){if("connected"===e.status){var n=FB.getAuthResponse().accessToken;FB.api("/me?fields=name,email,picture",function(e){t(i.drawUser(Object.assign({},{token:n},e)))})}})})})},i.drawUser=function(e){var n=new a;return n.id=e.id,n.name=e.name,n.email=e.email,n.token=e.token,n.image="https://graph.facebook.com/"+e.id+"/picture?type=normal",n},i.prototype.signIn=function(){return new Promise(function(t,e){FB.login(function(e){if(e.authResponse){var n=FB.getAuthResponse().accessToken;FB.api("/me?fields=name,email,picture",function(e){t(i.drawUser(Object.assign({},{token:n},e)))})}},{scope:"email,public_profile"})})},i.prototype.signOut=function(){return new Promise(function(n,e){FB.logout(function(e){n()})})},i.PROVIDER_ID="facebook",i}(o),d=function(t){function e(e){var n=t.call(this)||this;return n.clientId=e,n.loginProviderObj=new u,n.loginProviderObj.id=e,n.loginProviderObj.name="google",n.loginProviderObj.url="https://apis.google.com/js/platform.js",n}return c(e,t),e.prototype.initialize=function(){var t=this;return new Promise(function(e,n){t.loadScript(t.loginProviderObj,function(){gapi.load("auth2",function(){t.auth2=gapi.auth2.init({client_id:t.clientId,scope:"email"}),t.auth2.then(function(){t.auth2.isSignedIn.get()&&e(t.drawUser())})})})})},e.prototype.drawUser=function(){var e=new a,n=this.auth2.currentUser.get().getBasicProfile(),t=this.auth2.currentUser.get().getAuthResponse(!0);return e.id=n.getId(),e.name=n.getName(),e.email=n.getEmail(),e.image=n.getImageUrl(),e.token=t.access_token,e.idToken=t.id_token,e},e.prototype.signIn=function(){var t=this;return new Promise(function(e,n){t.auth2.signIn().then(function(){e(t.drawUser())})})},e.prototype.signOut=function(){var e=this;return new Promise(function(n,t){e.auth2.signOut().then(function(e){e?t(e):n()})})},e.PROVIDER_ID="google",e}(o),p=function(t){function e(e){var n=t.call(this)||this;return n.clientId=e,n.loginProviderObj=new u,n.loginProviderObj.id=e,n.loginProviderObj.name="linkedin",n.loginProviderObj.url="https://platform.linkedin.com/in.js",n}return c(e,t),e.prototype.initialize=function(){var t=this;return new Promise(function(n,e){t.loadScript(t.loginProviderObj,function(){IN.init({api_key:t.clientId,authorize:!0,onLoad:t.onLinkedInLoad()}),IN.Event.on(IN,"auth",function(){IN.User.isAuthorized()&&IN.API.Raw("/people/~:(id,first-name,last-name,email-address,picture-url)").result(function(e){n(t.drawUser(e))})})})})},e.prototype.onLinkedInLoad=function(){IN.Event.on(IN,"systemReady",function(){IN.User.refresh()})},e.prototype.drawUser=function(e){var n=new a;return n.id=e.emailAddress,n.name=e.firstName+" "+e.lastName,n.email=e.emailAddress,n.image=e.pictureUrl,n.token=IN.ENV.auth.oauth_token,n},e.prototype.signIn=function(){var t=this;return new Promise(function(n,e){IN.User.authorize(function(){IN.API.Raw("/people/~:(id,first-name,last-name,email-address,picture-url)").result(function(e){n(t.drawUser(e))})})})},e.prototype.signOut=function(){return new Promise(function(n,t){IN.User.logout(function(e){n()},function(e){t(e)})})},e.PROVIDER_ID="linkedin",e}(o),f=function P(e){this.providers=new Map;for(var n=0;n<e.length;n++){var t=e[n];this.providers.set(t.id,t.provider)}},g=function(){function r(e){var t=this;this._user=null,this._authState=new i.BehaviorSubject(null),this.providers=e.providers,this.providers.forEach(function(e,n){e.initialize().then(function(e){e.provider=n,t._user=e,t._authState.next(e)})["catch"](function(e){})})}return Object.defineProperty(r.prototype,"authState",{get:function(){return this._authState.asObservable()},enumerable:!0,configurable:!0}),r.prototype.signIn=function(i){var o=this;return new Promise(function(n,e){var t=o.providers.get(i);t?t.signIn().then(function(e){e.provider=i,n(e),o._user=e,o._authState.next(e)}):e(r.LOGIN_PROVIDER_NOT_FOUND)})},r.prototype.signOut=function(){var i=this;return new Promise(function(e,n){if(i._user&&i._user.provider){var t=i._user.provider;i.providers.get(t).signOut().then(function(){i._user=null,i._authState.next(null),e()})["catch"](function(e){i._authState.next(null)})}else n(r.LOGIN_PROVIDER_NOT_FOUND)})},r.LOGIN_PROVIDER_NOT_FOUND="Login provider not found",r.decorators=[{type:n.Injectable}],r.ctorParameters=function(){return[{type:f}]},r}(),m=function(){function e(){}return e.decorators=[{type:n.NgModule,args:[{imports:[t.CommonModule],declarations:[],providers:[g]}]}],e}();e.BaseLoginProvider=o,e.LinkedInResponseModel=r,e.LoginProviderClassModel=u,e.SocialUserModel=a,e.FacebookLoginProvider=l,e.GoogleLoginProvider=d,e.LinkedinLoginProvider=p,e.AuthServiceConfig=f,e.AuthService=g,e.DynamiSocialLoginModule=m,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=ng-dynami-social-login.umd.min.js.map