Angular7使用Firebase的身份验证服务库
ng7-o2-auth-fb是一个由Firebase提供的用于Angular7的认证服务库。
ng7-o2-auth-fb是一个用于使用Firebase认证服务的服务库,它是使用Angular7开发的。
请观看视频解释
完整的源代码可以在以下链接中找到:https://github.com/Ohtsu/ng7-o2-auth-firebase-project。
简要概述
-
- ng7-o2-auth-fb はコンポーネントから独立しています。したがって、Angular MaterialにもBootstrapにも対応することができます。
-
- 対応している認証は、ログイン・パスワードのほか、Google, Twitter,Facebook, GitHubです。
-
- ユーザ登録情報は、FirebaseのFirestoreデータベースに登録されます。
-
- パスワードの再発行にも対応しています。
-
- 環境変数により、ログイン後の遷移先などのページを設定できます。
- デバッグ・モードを選択すると、コンソールでログイン状態などを取得できます。
必须的环境
-
- Node.js
-
- TypeScript3
-
- firebase
-
- @angular/router
- @angular/fire
图书馆的运行环境版本。
-
- @angular/common : 7.1.0
-
- @angular/core : 7.1.0
-
- @angular/router : 7.1.0
-
- @angular/fire : 5.1.1
- firebase : 5.7.3
安装方法
要安装此库,请使用npm执行以下命令进行安装。
$ npm i ng7-o2-auth-fb
注册方法 lù
这个库中注册了以下方法。
请注意,上述的用户数据按照以下结构进行存储。这个格式将保存在Firebase的Firestore数据库的用户目录下。如果没有启用Firestore数据库,则无法使用此功能,请注意。
export interface User {
uid: number;
email: string;
displayName: string;
emailVerified: boolean;
photoURL?: string;
providerId?: string;
isAnonymous?: boolean;
}
设定可行的环境变量
可以在此库中设置的环境变量如下所示。
这些变量可以在Angular项目的environments/environment.ts文件中指定。
顺带一提,对于这个环境变量,由于版本升级的原因,随时可能增加,请您注意这一点。
o2AuthService: {
debugMode: true,
redirectPath: {
afterLoginPath: '/',
signInPath: 'sign-in',
registerUserPath: 'register-user',
dashboardPath: 'dashboard',
forgotPasswordPath: 'forgot-password',
verifyEmailPath: 'verify-email-address'
},
message: {
sendChangeEmail: 'Sent email',
logout: 'Logout',
forgotPasswordEmailSent: 'Password reset email sent, check your inbox',
resetPasswordEmailSent: 'Password update email sent'
}
},
示例项目
有关如何使用这个库的详细使用方法,请参阅在GitHub上注册的示例项目。值得注意的是,在这个示例项目中,使用了Angular Material的功能。诸如邮件格式验证、密码字符长度验证以及与确认密码的匹配等功能依赖于Angular Material。
然而,由于本服务库是独立于组件之外的,所以如果您正在使用Bootstrap进行开发,您当然可以在Bootstrap的功能中实现相似的功能。
此外,您还可以在projects目录下找到本库的源代码,并进行引用。
安装示例项目
首先,进入特定的目录,并在该目录下进行如下克隆操作。
$ git clone https://github.com/Ohtsu/ng7-o2-auth-firebase-project.git
- 作成された ng7-o2-auth-firebase-project に移動し、”npm install”を実行します。
$ cd ng7-o2-auth-firebase-project
$ npm install
设定环境变量
在启动服务器之前,您需要先创建一个Firebase账户,并将其信息设置为环境变量。
另外,还需要确保可以使用Firestore作为数据库。
将环境变量设置在environments/environment.ts文件中。
export const environment = {
production: false,
firebase: {
apiKey: '-- You need to set this param--',
authDomain: '-- You need to set this param--',
databaseURL: '-- You need to set this param--',
projectId: '-- You need to set this param--',
storageBucket: '-- You need to set this param--',
messagingSenderId: '-- You need to set this param--'
},
o2AuthService: {
debugMode: true,
redirectPath: {
afterLoginPath: '/',
signInPath: 'sign-in',
registerUserPath: 'register-user',
dashboardPath: 'dashboard',
forgotPasswordPath: 'forgot-password',
verifyEmailPath: 'verify-email-address'
},
message: {
sendChangeEmail: 'Sent email',
logout: 'Logout',
forgotPasswordEmailSent: 'Password reset email sent, check your inbox',
resetPasswordEmailSent: 'Password update email sent'
}
}
};
启动本地服务器
以下是启动本地服务器的步骤。
$ ng s -o
浏览器将显示默认页面。
First Page
Login Page
Check Email format
在输入电子邮件的同时,会检查是否存在非法的电子邮件地址。
Check Password length
点击注册按钮后,将显示以下页面。密码的最低长度(6个字符)也将被检查。
Check Password matching
密码和确认密码的检查也会在显示过程中进行。
Debug Mode
如果将环境变量debugMode设置为true,就可以在控制台中获取以下信息。
o2AuthService: {
debugMode: true,
示例项目的运行环境
-
- ng7-o2-auth-firebase-project : 0.3
-
- ng7-o2-auth-fb : 0.3
-
- Angular7/cli : 7.1.4
-
- TypeScript : 3.1.6
-
- firebase : 5.8.2
-
- @angular/fire : 5.1.1
-
- @angular/material : 7.3.1
-
- @fortawesome/fontawesome-free : 5.7.1
-
- hammerjs : 2.0.8
- node.js : 10.12.0
文献引用
-
- “Angular + Firebase Progressive Web App Starter”,
-
- https://github.com/codediodeio/angular-firestarter/edit/master/src/app/core/auth.service.ts
-
- “Full Angular 7 Firebase Authentication System”,
-
- https://www.positronx.io/full-angular-7-firebase-authentication-system/?fbclid=IwAR1pXk_hPy_77gigtmpKXlhAPuEY_0MVuX9ssxSJsWUgA71m6w4LQ1XimPI#.XDk-Jxx4HcA.facebook
-
- “Angular 7 – Reactive Forms Validation Example”,
-
- http://jasonwatmore.com/post/2018/11/07/angular-7-reactive-forms-validation-example
-
- “Angular Material Form Validation, Input, Datepicker and Modal”,
-
- https://code-maze.com/angular-material-form-validation/
-
- “[Angular エラー対策] Expected validator to return Promise or Observable”,
-
- https://qiita.com/seteen/items/50999fc33a27bd07e520
-
- “Angular 6, Angular 7 Custom Library: Step-by-step guide”,
-
- https://www.udemy.com/angular5-custom-library-the-definitive-step-by-step-guide/
-
- “Angular 6, Angular 7用 カスタムライブラリの作成: 完全ステップ・バイ・ステップ・ガイド”,
- https://www.udemy.com/angular5-l/
修改记录
- 2019.2.6 version 0.3 uploaded
版权
版权所有 2018 年大津修一(DigiPub日本)
许可证
麻省理工学院版权所有:大辻修一