UNPKG

angularx-social-login

Version:

Social login and authentication module for Angular 9+. Supports authentication with Google, Facebook, Amazon, and VK. Can be extended to other providers also.

83 lines 8.5 kB
import { BaseLoginProvider } from '../entities/base-login-provider'; // Simulates login / logout without actually requiring an Internet connection. // // Useful for certain development situations. // // For example, if you want to simulate the greatest football referee England has ever produced: // // const dummyUser: SocialUser = { // id: '0123456789', // name: 'Howard Webb', // email: 'howard@webb.com', // firstName: 'Howard', // lastName: 'Webb', // authToken: 'dummyAuthToken', // photoUrl: 'https://en.wikipedia.org/wiki/Howard_Webb#/media/File:Howard_Webb_march11.jpg', // provider: 'DUMMY', // idToken: 'dummyIdToken', // authorizationCode: 'dummyAuthCode' // }; // // let config = new AuthServiceConfig([ // { ... }, // { // id: DummyLoginProvider.PROVIDER_ID, // provider: new DummyLoginProvider(dummyUser) // Pass your user into the constructor // }, // { ... } // ]); export class DummyLoginProvider extends BaseLoginProvider { constructor(dummy) { super(); if (dummy) { this.dummy = dummy; } else { this.dummy = DummyLoginProvider.DEFAULT_USER; } // Start not logged in this.loggedIn = false; } getLoginStatus() { return new Promise((resolve, reject) => { if (this.loggedIn) { resolve(this.dummy); } else { reject('No user is currently logged in.'); } }); } initialize() { return new Promise((resolve, reject) => { resolve(); }); } signIn() { return new Promise((resolve, reject) => { this.loggedIn = true; resolve(this.dummy); }); } signOut(revoke) { return new Promise((resolve, reject) => { this.loggedIn = false; resolve(); }); } } DummyLoginProvider.PROVIDER_ID = 'DUMMY'; DummyLoginProvider.DEFAULT_USER = { id: '1234567890', name: 'Mickey Mouse', email: 'mickey@mouse.com', firstName: 'Mickey', lastName: 'Mouse', authToken: 'dummyAuthToken', photoUrl: 'https://en.wikipedia.org/wiki/File:Mickey_Mouse.png', provider: 'DUMMY', idToken: 'dummyIdToken', authorizationCode: 'dummyAuthCode', response: {} }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtbXktbG9naW4tcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvSkFEVVRUQS9kZXYvd2ViL2FuZ3VsYXJ4LXNvY2lhbC1sb2dpbi9wcm9qZWN0cy9saWIvc3JjLyIsInNvdXJjZXMiOlsicHJvdmlkZXJzL2R1bW15LWxvZ2luLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBSWxFLDhFQUE4RTtBQUM5RSxFQUFFO0FBQ0YsNkNBQTZDO0FBQzdDLEVBQUU7QUFDRixnR0FBZ0c7QUFDaEcsRUFBRTtBQUNGLG1DQUFtQztBQUNuQyx3QkFBd0I7QUFDeEIsMkJBQTJCO0FBQzNCLGdDQUFnQztBQUNoQywyQkFBMkI7QUFDM0Isd0JBQXdCO0FBQ3hCLG1DQUFtQztBQUNuQyxpR0FBaUc7QUFDakcseUJBQXlCO0FBQ3pCLCtCQUErQjtBQUMvQix5Q0FBeUM7QUFDekMsS0FBSztBQUNMLEVBQUU7QUFDRix3Q0FBd0M7QUFDeEMsWUFBWTtBQUNaLEtBQUs7QUFDTCw0Q0FBNEM7QUFDNUMsNEZBQTRGO0FBQzVGLE9BQU87QUFDUCxXQUFXO0FBQ1gsT0FBTztBQUdQLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFxQnZELFlBQVksS0FBa0I7UUFDNUIsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ3BCO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLGtCQUFrQixDQUFDLFlBQVksQ0FBQztTQUM5QztRQUVELHNCQUFzQjtRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3JCO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO2FBQzNDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFnQjtRQUN0QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQTVEc0IsOEJBQVcsR0FBVyxPQUFPLENBQUM7QUFFckMsK0JBQVksR0FBRztJQUM3QixFQUFFLEVBQUUsWUFBWTtJQUNoQixJQUFJLEVBQUUsY0FBYztJQUNwQixLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLFNBQVMsRUFBRSxRQUFRO0lBQ25CLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLFNBQVMsRUFBRSxnQkFBZ0I7SUFDM0IsUUFBUSxFQUFFLHFEQUFxRDtJQUMvRCxRQUFRLEVBQUUsT0FBTztJQUNqQixPQUFPLEVBQUUsY0FBYztJQUN2QixpQkFBaUIsRUFBRSxlQUFlO0lBQ2xDLFFBQVEsRUFBRSxFQUFFO0NBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmFzZUxvZ2luUHJvdmlkZXJ9IGZyb20gJy4uL2VudGl0aWVzL2Jhc2UtbG9naW4tcHJvdmlkZXInO1xyXG5pbXBvcnQge1NvY2lhbFVzZXJ9IGZyb20gJy4uL2VudGl0aWVzL3NvY2lhbC11c2VyJztcclxuXHJcblxyXG4vLyBTaW11bGF0ZXMgbG9naW4gLyBsb2dvdXQgd2l0aG91dCBhY3R1YWxseSByZXF1aXJpbmcgYW4gSW50ZXJuZXQgY29ubmVjdGlvbi5cclxuLy9cclxuLy8gVXNlZnVsIGZvciBjZXJ0YWluIGRldmVsb3BtZW50IHNpdHVhdGlvbnMuXHJcbi8vXHJcbi8vIEZvciBleGFtcGxlLCBpZiB5b3Ugd2FudCB0byBzaW11bGF0ZSB0aGUgZ3JlYXRlc3QgZm9vdGJhbGwgcmVmZXJlZSBFbmdsYW5kIGhhcyBldmVyIHByb2R1Y2VkOlxyXG4vL1xyXG4vLyAgY29uc3QgZHVtbXlVc2VyOiBTb2NpYWxVc2VyID0ge1xyXG4vLyAgICAgaWQ6ICcwMTIzNDU2Nzg5JyxcclxuLy8gICAgIG5hbWU6ICdIb3dhcmQgV2ViYicsXHJcbi8vICAgICBlbWFpbDogJ2hvd2FyZEB3ZWJiLmNvbScsXHJcbi8vICAgICBmaXJzdE5hbWU6ICdIb3dhcmQnLFxyXG4vLyAgICAgbGFzdE5hbWU6ICdXZWJiJyxcclxuLy8gICAgIGF1dGhUb2tlbjogJ2R1bW15QXV0aFRva2VuJyxcclxuLy8gICAgIHBob3RvVXJsOiAnaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSG93YXJkX1dlYmIjL21lZGlhL0ZpbGU6SG93YXJkX1dlYmJfbWFyY2gxMS5qcGcnLFxyXG4vLyAgICAgcHJvdmlkZXI6ICdEVU1NWScsXHJcbi8vICAgICBpZFRva2VuOiAnZHVtbXlJZFRva2VuJyxcclxuLy8gICAgIGF1dGhvcml6YXRpb25Db2RlOiAnZHVtbXlBdXRoQ29kZSdcclxuLy8gfTtcclxuLy9cclxuLy8gIGxldCBjb25maWcgPSBuZXcgQXV0aFNlcnZpY2VDb25maWcoW1xyXG4vLyAgeyAuLi4gfSxcclxuLy8gIHtcclxuLy8gICAgICAgaWQ6IER1bW15TG9naW5Qcm92aWRlci5QUk9WSURFUl9JRCxcclxuLy8gICAgICAgcHJvdmlkZXI6IG5ldyBEdW1teUxvZ2luUHJvdmlkZXIoZHVtbXlVc2VyKSAgLy8gUGFzcyB5b3VyIHVzZXIgaW50byB0aGUgY29uc3RydWN0b3JcclxuLy8gICB9LFxyXG4vLyAgeyAuLi4gfVxyXG4vLyAgXSk7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIER1bW15TG9naW5Qcm92aWRlciBleHRlbmRzIEJhc2VMb2dpblByb3ZpZGVyIHtcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1ZJREVSX0lEOiBzdHJpbmcgPSAnRFVNTVknO1xyXG5cclxuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9VU0VSID0ge1xyXG4gICAgaWQ6ICcxMjM0NTY3ODkwJyxcclxuICAgIG5hbWU6ICdNaWNrZXkgTW91c2UnLFxyXG4gICAgZW1haWw6ICdtaWNrZXlAbW91c2UuY29tJyxcclxuICAgIGZpcnN0TmFtZTogJ01pY2tleScsXHJcbiAgICBsYXN0TmFtZTogJ01vdXNlJyxcclxuICAgIGF1dGhUb2tlbjogJ2R1bW15QXV0aFRva2VuJyxcclxuICAgIHBob3RvVXJsOiAnaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRmlsZTpNaWNrZXlfTW91c2UucG5nJyxcclxuICAgIHByb3ZpZGVyOiAnRFVNTVknLFxyXG4gICAgaWRUb2tlbjogJ2R1bW15SWRUb2tlbicsXHJcbiAgICBhdXRob3JpemF0aW9uQ29kZTogJ2R1bW15QXV0aENvZGUnLFxyXG4gICAgcmVzcG9uc2U6IHt9XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBkdW1teTogU29jaWFsVXNlcjtcclxuXHJcbiAgcHJpdmF0ZSBsb2dnZWRJbjogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoZHVtbXk/OiBTb2NpYWxVc2VyKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgaWYgKGR1bW15KSB7XHJcbiAgICAgIHRoaXMuZHVtbXkgPSBkdW1teTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZHVtbXkgPSBEdW1teUxvZ2luUHJvdmlkZXIuREVGQVVMVF9VU0VSO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFN0YXJ0IG5vdCBsb2dnZWQgaW5cclxuICAgIHRoaXMubG9nZ2VkSW4gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldExvZ2luU3RhdHVzKCk6IFByb21pc2U8U29jaWFsVXNlcj4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgaWYgKHRoaXMubG9nZ2VkSW4pIHtcclxuICAgICAgICByZXNvbHZlKHRoaXMuZHVtbXkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlamVjdCgnTm8gdXNlciBpcyBjdXJyZW50bHkgbG9nZ2VkIGluLicpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICByZXNvbHZlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNpZ25JbigpOiBQcm9taXNlPFNvY2lhbFVzZXI+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMubG9nZ2VkSW4gPSB0cnVlO1xyXG4gICAgICByZXNvbHZlKHRoaXMuZHVtbXkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzaWduT3V0KHJldm9rZT86IGJvb2xlYW4pOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5sb2dnZWRJbiA9IGZhbHNlO1xyXG4gICAgICByZXNvbHZlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19