Angular의 Firebase 인증
Firebase는 앱에서 인증을 설정하는 쉬운 방법을 제공합니다. 여기에서는 AngularFire2 라이브러리를 사용하여 Angular 2+ 애플리케이션에 대한 간단한 이메일/비밀번호 등록 및 인증 워크플로를 설정하는 방법을 살펴보겠습니다.
첫 번째 단계는 새 Firebase 프로젝트를 만들고 Firebase 콘솔의 인증 섹션에서 이메일/비밀번호 로그인 방법을 활성화하는 것입니다.
npm을 사용하여 필요한 패키지 설치를 시작해 보겠습니다. 그러면 프로젝트에 Firebase SDK, AngularFire2 및 promise-polyfill 종속성이 추가됩니다.
$ npm install firebase angularfire2 --save
$ npm install promise-polyfill --save-exact
이제 프로젝트의 환경 변수에 Firebase API 및 프로젝트 자격 증명을 추가해 보겠습니다. 웹 앱에 Firebase 추가를 클릭하면 Firebase 콘솔에서 다음 값을 찾을 수 있습니다.
src/environments/environment.ts
export const environment = { production: false, firebase: { apiKey: 'XXXXXXXXXXX', authDomain: 'XXXXXXXXXXX', databaseURL: 'XXXXXXXXXXX', projectId: 'XXXXXXXXXXX', storageBucket: 'XXXXXXXXXXX', messagingSenderId: 'XXXXXXXXXXX' }};
그런 다음 AngularFireModule 및 AngularFireAuthModule을 사용하여 앱 모듈을 구성합니다. 또한 AuthService를 가져오고 제공하고 있습니다. 다음으로 서비스를 생성하겠습니다:
app.module.ts
// ... import { AngularFireModule } from 'angularfire2'; import { environment } from '../environments/environment'; import { AngularFireAuthModule } from 'angularfire2/auth'; import { AuthService } from './auth.service'; @NgModule({ declarations: [ AppComponent ], imports: [ // ... AngularFireModule.initializeApp(environment.firebase), AngularFireAuthModule ], providers: [AuthService], bootstrap: [AppComponent] }) export class AppModule { }
인증 서비스 생성
우리 서비스는 사용자 로그인, 등록 또는 로그아웃을 가능하게 하는 중앙 위치가 될 것입니다. 이 3가지 작업 정의 방법을 만듭니다. 모든 인증 로직이 서비스에 포함되므로 인증 로직을 구현할 필요가 없는 구성 요소를 생성하고 구성 요소를 단순하게 유지하는 데 도움이 됩니다.
이 명령을 사용하면 Angular CLI를 사용하여 서비스용 프레임워크를 만들 수 있습니다.
$ ng g s auth
이것은 AngularFireAuth를 활용하는 서비스 구현입니다.
auth.service.ts
import { Injectable } from '@angular/core'; import { AngularFireAuth } from 'angularfire2/auth'; import * as firebase from 'firebase/app'; import { Observable } from 'rxjs/Observable'; @Injectable() export class AuthService { user: Observable<firebase.User>; constructor(private firebaseAuth: AngularFireAuth) { this.user = firebaseAuth.authState; } signup(email: string, password: string) { this.firebaseAuth .auth .createUserWithEmailAndPassword(email, password) .then(value => { console.log('Success!', value); }) .catch(err => { console.log('Something went wrong:',err.message); }); } login(email: string, password: string) { this.firebaseAuth .auth .signInWithEmailAndPassword(email, password) .then(value => { console.log('Nice, it worked!'); }) .catch(err => { console.log('Something went wrong:',err.message); }); } logout() { this.firebaseAuth .auth .signOut(); } }
사용 가능한 방법을 확인할 수 있습니다. on AngularFireAuth.auth 둘 다 약속을 반환하므로 then과 catch를 사용하여 각각 성공 및 오류 상태를 처리할 수 있습니다.
여기서는 이메일/비밀번호 인증을 설정하기 때문에 createUserWithEmailAndPassword 및 signInWithEmailAndPassword를 사용하고 있지만 동일한 방법을 사용하여 Twitter, Facebook 또는 Google을 통해 인증할 수 있습니다.
구성 요소 클래스 및 템플릿
이제 인증 서비스가 구현되었으므로 로그인, 등록 또는 로그아웃을 허용하는 구성 요소를 만드는 것은 매우 간단합니다.
app.comComponent.ts
import { Component } from '@angular/core'; import { AuthService } from './auth.service'; @Component({ ... }) export class AppComponent { email: string; password: string; constructor(public authService: AuthService) {} signup() { this.authService.signup(this.email, this.password); this.email = this.password = ''; } login() { this.authService.login(this.email, this.password); this.email = this.password = ''; } logout() { this.authService.logout(); } }
구성 요소의 생성자 인증 서비스에 서비스를 삽입한 다음 인증 서비스에서 동등한 메서드를 호출하는 기본 메서드를 정의합니다. 템플릿에서도 직접 서비스 속성에 액세스할 수 있도록 private 대신 public 키워드를 사용하는 서비스에 중점을 둡니다.
템플릿은 매우 간단하며 authService의 사용자 개체에 비동기 파이프를 사용하여 로그인한 사용자가 있는지 확인합니다.
app.comComponent.html
<h1 *ngIf="authService.user | async">Welcome {{ (authService.user | async)?.email }}!</h1> <div *ngIf="!(authService.user | async)"> <input type="text" [(ngModel)]="email" placeholder="email"> <input type="password" [(ngModel)]="password" placeholder="email"> <button (click)="signup()" [disabled]="!email || !password"> Signup </button> <button (click)="login()" [disabled]="!email || !password"> Login </button> </div> <button (click)="logout()" *ngIf="authService.user | async"> Logout </button>
입력 필드는 프레임워크 구문에서 ngModel과 바나나를 사용합니다. , 양방향 바인딩 컴포넌트 클래스에 이메일 및 비밀번호 값을 정의합니다.
완료! Firebase 인증을 사용하여 앱에 인증을 추가하는 것은 매우 쉽습니다!
위 내용은 Angular의 Firebase 인증의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

이 기사는 브라우저에서 JavaScript 성능을 최적화하기위한 전략에 대해 설명하고 실행 시간을 줄이고 페이지로드 속도에 미치는 영향을 최소화하는 데 중점을 둡니다.

프론트 엔드 개발시 프론트 엔드 열지대 티켓 인쇄를위한 자주 묻는 질문과 솔루션, 티켓 인쇄는 일반적인 요구 사항입니다. 그러나 많은 개발자들이 구현하고 있습니다 ...

이 기사는 브라우저 개발자 도구를 사용하여 효과적인 JavaScript 디버깅, 중단 점 설정, 콘솔 사용 및 성능 분석에 중점을 둡니다.

기술 및 산업 요구에 따라 Python 및 JavaScript 개발자에 대한 절대 급여는 없습니다. 1. 파이썬은 데이터 과학 및 기계 학습에서 더 많은 비용을 지불 할 수 있습니다. 2. JavaScript는 프론트 엔드 및 풀 스택 개발에 큰 수요가 있으며 급여도 상당합니다. 3. 영향 요인에는 경험, 지리적 위치, 회사 규모 및 특정 기술이 포함됩니다.

이 기사는 소스 맵을 사용하여 원래 코드에 다시 매핑하여 미니어링 된 JavaScript를 디버그하는 방법을 설명합니다. 소스 맵 활성화, 브레이크 포인트 설정 및 Chrome Devtools 및 Webpack과 같은 도구 사용에 대해 설명합니다.

Console.log 출력의 차이의 근본 원인에 대한 심층적 인 논의. 이 기사에서는 Console.log 함수의 출력 결과의 차이점을 코드에서 분석하고 그에 따른 이유를 설명합니다. � ...

동일한 ID로 배열 요소를 JavaScript의 하나의 객체로 병합하는 방법은 무엇입니까? 데이터를 처리 할 때 종종 동일한 ID를 가질 필요가 있습니다 ...
