diff --git a/angularjs-social-login.min.js b/angularjs-social-login.min.js new file mode 100644 index 0000000..615d4ef --- /dev/null +++ b/angularjs-social-login.min.js @@ -0,0 +1 @@ +"use strict";var socialLogin=angular.module("socialLogin",[]);socialLogin.provider("social",function(){var i,c,s,r;return{setFbKey:function(e){i=e.appId,c=e.apiVersion;var o,t=document,n=t.getElementsByTagName("script")[0];(o=t.createElement("script")).id="facebook-jssdk",o.async=!0,o.src="//connect.facebook.net/en_US/sdk.js",o.onload=function(){FB.init({appId:i,status:!0,cookie:!0,xfbml:!0,version:c})},n.parentNode.insertBefore(o,n)},setGoogleKey:function(o){s=o;var e,t=document,n=t.getElementsByTagName("script")[0];(e=t.createElement("script")).async=!0,e.src="//apis.google.com/js/platform.js",e.onload=function(){var e={client_id:o,scope:"email"};gapi.load("auth2",function(){gapi.auth2.init(e)})},n.parentNode.insertBefore(e,n)},setLinkedInKey:function(e){r=e;var o,t=document,n=t.getElementsByTagName("script")[0];(o=t.createElement("script")).async=!1,o.src="//platform.linkedin.com/in.js",o.text=("api_key: "+r).replace('"',""),n.parentNode.insertBefore(o,n)},$get:function(){return{fbKey:i,googleKey:s,linkedInKey:r,fbApiV:c}}}}),socialLogin.factory("socialLoginService",["$window","$rootScope",function(i,c){return{logout:function(){switch(i.localStorage.getItem("_login_provider")){case"google":var e=document.getElementById("gSignout");void 0!==e&&null!=e&&e.remove();var o,t=document,n=t.getElementsByTagName("script")[0];(o=t.createElement("script")).src="https://accounts.google.com/Logout",o.type="text/html",o.id="gSignout",i.localStorage.removeItem("_login_provider"),c.$broadcast("event:social-sign-out-success","success"),n.parentNode.insertBefore(o,n);break;case"linkedIn":IN.User.logout(function(){i.localStorage.removeItem("_login_provider"),c.$broadcast("event:social-sign-out-success","success")},{});break;case"facebook":FB.logout(function(e){i.localStorage.removeItem("_login_provider"),c.$broadcast("event:social-sign-out-success","success")})}},setProvider:function(e){i.localStorage.setItem("_login_provider",e)}}}]),socialLogin.directive("linkedIn",["$rootScope","social","socialLoginService","$window",function(n,e,i,o){return{restrict:"EA",scope:{},link:function(e,o,t){o.on("click",function(){IN.User.authorize(function(){IN.API.Raw("/people/~:(id,first-name,last-name,email-address,picture-url)").result(function(e){i.setProvider("linkedIn");var o={name:e.firstName+" "+e.lastName,email:e.emailAddress,uid:e.id,provider:"linkedIN",imageUrl:e.pictureUrl};n.$broadcast("event:social-sign-in-success",o)})})})}}}]),socialLogin.directive("gLogin",["$rootScope","social","socialLoginService",function(t,e,i){return{restrict:"EA",scope:{},replace:!0,link:function(n,e,o){e.on("click",function(){function o(){var e=n.gauth.currentUser.get(),o=e.getBasicProfile(),t=e.getAuthResponse().id_token;return{token:e.getAuthResponse().access_token,idToken:t,name:o.getName(),email:o.getEmail(),uid:o.getId(),provider:"google",imageUrl:o.getImageUrl()}}void 0===n.gauth&&(n.gauth=gapi.auth2.getAuthInstance()),n.gauth.isSignedIn.get()?(i.setProvider("google"),t.$broadcast("event:social-sign-in-success",o())):n.gauth.signIn().then(function(e){i.setProvider("google"),t.$broadcast("event:social-sign-in-success",o())},function(e){console.log(e)})})}}}]),socialLogin.directive("fbLogin",["$rootScope","social","socialLoginService","$q",function(n,e,i,c){return{restrict:"EA",scope:{},replace:!0,link:function(e,o,t){o.on("click",function(){function e(){var o=c.defer();return FB.api("/me?fields=name,email,picture",function(e){!e||e.error?o.reject("Error occured while fetching user details."):o.resolve({name:e.name,email:e.email,uid:e.id,provider:"facebook",imageUrl:e.picture.data.url})}),o.promise}FB.getLoginStatus(function(o){"connected"===o.status?e().then(function(e){e.token=o.authResponse.accessToken,i.setProvider("facebook"),n.$broadcast("event:social-sign-in-success",e)}):FB.login(function(o){"connected"===o.status&&e().then(function(e){e.token=o.authResponse.accessToken,i.setProvider("facebook"),n.$broadcast("event:social-sign-in-success",e)})},{scope:"email",auth_type:"rerequest"})})})}}}]);