diff --git a/firebase/firebase-simplelogin-tests.ts b/firebase/firebase-simplelogin-tests.ts new file mode 100644 index 000000000..e0be13e48 --- /dev/null +++ b/firebase/firebase-simplelogin-tests.ts @@ -0,0 +1,86 @@ +/// + +var chatRef: Firebase = new Firebase('https://.firebaseio.com'); +var auth: FirebaseSimpleLogin = new FirebaseSimpleLogin(chatRef, function(error, user) { + if (error) { + // an error occurred while attempting login + switch(error.code) { + case 'INVALID_EMAIL': + case 'INVALID_PASSWORD': + default: + } + } else if (user) { + // user authenticated with Firebase + console.log('User ID: ' + user.id + ', Provider: ' + user.provider); + } else { + // user is logged out + } +}); + +var email = 'my@email.com'; +var password = 'secret'; +var oldPassword = 'secret'; +var newPassword = 'secret'; + +auth.login('password', { + email: '', + password: '', + rememberMe: true +}); + +auth.login('facebook', { + rememberMe: true, + scope: 'email,user_likes' +}); + +auth.login('github', { + rememberMe: true, + scope: 'user,gist' +}); + +auth.login('google', { + rememberMe: true, + scope: 'https://www.googleapis.com/auth/plus.login' +}); + +auth.login('persona', { + rememberMe: true +}); + +auth.login('twitter', { + rememberMe: true +}); + +auth.login('anonymous'); + +auth.createUser(email, password, function(error, user) { + if (!error) { + console.log('User Id: ' + user.id + ', Email: ' + user.email); + } +}); + +auth.createUser(email, password); + +auth.changePassword(email, oldPassword, newPassword, function(error, success) { + if (!error) { + console.log('Password changed successfully'); + } +}); + +auth.changePassword(email, oldPassword, newPassword); + +auth.sendPasswordResetEmail(email, function(error, success) { + if (!error) { + console.log('Password reset email sent successfully'); + } +}); + +auth.sendPasswordResetEmail(email); + +auth.removeUser(email, password, function(error, success) { + if (!error) { + console.log('User deleted successfully'); + } +}); + +auth.removeUser(email, password); \ No newline at end of file diff --git a/firebase/firebase-simplelogin.d.ts b/firebase/firebase-simplelogin.d.ts new file mode 100644 index 000000000..817ec934a --- /dev/null +++ b/firebase/firebase-simplelogin.d.ts @@ -0,0 +1,94 @@ +// Type definitions for Firebase Simple Login +// Project: https://www.firebase.com/docs/security/simple-login-overview.html +// Definitions by: Wilker Lucio +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +interface IFirebaseSimpleLoginError { + code: string; + message: string; +} + +interface IFirebaseSimpleLoginOptions { + // general options + debug?: boolean + rememberMe?: boolean + + // email + email?: string + password?: string + + // facebook / github / google / twitter + preferRedirect?: boolean + + // facebook / github / google + scope?: string + + // facebook + access_token?: string + + // twitter + oauth_token?: string + + // persona + backgroundColor?: string + privacyPolicy?: string + siteLogo?: string + siteName?: string + termsOfService?: string +} + +interface IFirebaseSimpleLoginUser { + // general data + firebaseAuthToken: string; + id: string; + provider: string; + uid: string; + + // email / persona + md5_hash?: string; + + // email + email?: string; + + // facebook / github / google / twitter + accessToken?: string + displayName?: string + thirdPartyUserData?: Object + + // github / twitter + username?: string + + // twitter + accessTokenSecret?: string +} + +declare class FirebaseSimpleLogin { + email: string; + id: string; + provider: string; + uid: string; + username: string; + + constructor(firebase: Firebase, callback: (err: IFirebaseSimpleLoginError, user: IFirebaseSimpleLoginUser) => any); + + login(loginType: string, options?: IFirebaseSimpleLoginOptions): void; + logout(): void; + + createUser(email: string, + password: string, + callback?: (err: IFirebaseSimpleLoginError, user: IFirebaseSimpleLoginUser) => any): void; + + changePassword(email: string, + oldPassword: string, + newPassword: string, + callback?: (err: IFirebaseSimpleLoginError, success: boolean) => any): void; + + sendPasswordResetEmail(email: string, + callback?: (err: IFirebaseSimpleLoginError, success: boolean) => any): void; + + removeUser(email: string, + password: string, + callback?: (err: IFirebaseSimpleLoginError, success: boolean) => any): void; +} \ No newline at end of file