@arc-publishing/sdk-identity
Version:
JS Identity SDK for working with Identity API
56 lines • 2.73 kB
JavaScript
import { __awaiter, __generator } from "tslib";
import Identity from './identity';
import { socialLogin } from './socialSignOn';
import getFacebookLoginStatus from './getFacebookLoginStatus';
import { isFacebookLoginResponse } from './socialSignOnTypes';
export function facebookSignOn() {
return __awaiter(this, void 0, void 0, function () {
var facebookLoginStatus;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4, getFacebookLoginStatus(true)];
case 1:
facebookLoginStatus = _a.sent();
if (!isFacebookLoginResponse(facebookLoginStatus)) return [3, 5];
if (!(facebookLoginStatus.status === 'connected')) return [3, 3];
return [4, socialLogin('facebook', {
credentials: facebookLoginStatus.authResponse.accessToken
})];
case 2: return [2, _a.sent()];
case 3:
if (Identity._useCustomFBButton) {
return [2, customButtonFacebookSignOn()];
}
else {
throw new Error("User canceled login, did not fully authorize, or is not logged in to Facebook: ".concat(facebookLoginStatus));
}
_a.label = 4;
case 4: return [3, 6];
case 5: throw new Error("Error getting login status. Please try again. ".concat(facebookLoginStatus));
case 6: return [2];
}
});
});
}
export function customButtonFacebookSignOn() {
return __awaiter(this, void 0, void 0, function () {
var _this = this;
return __generator(this, function (_a) {
return [2, window.FB.login(function (response) { return __awaiter(_this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!(response.status === 'connected')) return [3, 2];
return [4, socialLogin('facebook', {
credentials: response.authResponse.accessToken
})];
case 1: return [2, _a.sent()];
case 2: throw new Error("User canceled login, did not fully authorize, or is not logged in to Facebook: ".concat(response));
}
});
}); })];
});
});
}
export default facebookSignOn;
//# sourceMappingURL=facebookSignOn.js.map