react-facebook-auth
Version:
A Component React for Facebook authentication
1 lines • 5.16 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define("ReactFacebookAuth",["react"],t):"object"==typeof exports?exports.ReactFacebookAuth=t(require("react")):e.ReactFacebookAuth=t(e.React)}(window,function(e){return function(e){var t={};function o(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},o.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=3)}([function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toQueryString=function(e){return Object.keys(e).map(function(t){return t+"="+encodeURIComponent(e[t])}).join("&")},t.isMobile=function(){try{return!!(window.navigator&&window.navigator.standalone||navigator.userAgent.match("CriOS")||navigator.userAgent.match(/mobile/i))}catch(e){return!1}}},function(t,o){t.exports=e},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},i=function(){function e(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}(),c=o(1),a=(n=c)&&n.__esModule?n:{default:n},u=o(0);function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var f=function(e){function t(){var e,o,n;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var i=arguments.length,c=Array(i),a=0;a<i;a++)c[a]=arguments[a];return o=n=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(c))),n.responseApi=function(e){window.FB.api("/me",{locale:n.props.language,fields:n.props.fields},function(t){n.props.callback(r({},t,e))})},n.checkLoginState=function(e){e.authResponse?n.responseApi(e.authResponse):n.props.onFailure?n.props.onFailure({status:e.status}):n.props.callback({status:e.status})},n.checkLoginAfterRefresh=function(e){"unknown"===e.status?window.FB.login(function(e){return n.checkLoginState(e)},!0):n.checkLoginState(e)},n.click=function(e){var t=n.props,o=t.scope,r=t.returnScopes,i=t.appId,c=t.onClick,a=t.reAuthenticate,s=t.reRequest,f=t.redirectUri,l=t.disableRedirect,p=t.isMobile;if("function"!=typeof c||(c(e),!e.defaultPrevented)){var d={client_id:i,redirect_uri:f,state:"facebookdirect",return_scopes:r,scope:o};a&&(d.auth_type="reauthenticate"),s&&(d.auth_type="rerequest"),p&&!l?window.location.href="//www.facebook.com/dialog/oauth?"+(0,u.toQueryString)(d):window.FB.login(n.checkLoginState,{scope:o,return_scopes:r,auth_type:d.auth_type})}},s(n,o)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,a.default.Component),i(t,[{key:"componentDidMount",value:function(){if(!document.getElementById("facebook-jssdk")){this.setfbAsyncInit(),this.loadSdkAsynchronously();var e=document.getElementById("fb-root");e||((e=document.createElement("div")).id="fb-root",document.body.appendChild(e))}}},{key:"setfbAsyncInit",value:function(){var e=this,t=this.props,o=t.appId,n=t.xfbml,r=t.cookie,i=t.version,c=t.autoLoad;window.fbAsyncInit=function(){window.FB.init({version:"v"+i,appId:o,xfbml:n,cookie:r}),(c||-1!==window.location.search.indexOf("facebookdirect"))&&window.FB.getLoginStatus(e.checkLoginAfterRefresh)}}},{key:"loadSdkAsynchronously",value:function(){var e=this.props.language;!function(t,o,n){var r=t.getElementsByTagName(o)[0];if(!t.getElementById(n)){var i=t.createElement(o);i.id=n,i.src="https://connect.facebook.net/"+e+"/sdk.js",r.parentNode.insertBefore(i,r)}}(document,"script","facebook-jssdk")}},{key:"render",value:function(){var e=this.props.component;return a.default.createElement(e,r({onClick:this.click},this.props.customProps))}}]),t}();f.defaultProps={redirectUri:"undefined"!=typeof window?window.location.href:"/",scope:"public_profile,email",onFailure:void 0,returnScopes:!1,xfbml:!1,cookie:!1,isMobile:(0,u.isMobile)(),reAuthenticate:!1,reRequest:!1,fields:"name,email,picture",version:"2.8",language:"en_US",autoLoad:!1,disableRedirect:!1,customProps:{}},t.default=f,e.exports=t.default},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n,r=o(2),i=(n=r)&&n.__esModule?n:{default:n};t.default=i.default,e.exports=t.default}])});