[Flutter] 애플리케이션에 GiitHub 로그인 기능 추가
개시하다
이번에는 플루터에서 기릿허브 계정으로 로그인하는 기능을 실시했기 때문에 적어야 한다.
트위터와 페이스북 등 다른 공급자의 프로그램도 거의 동일해 앱이 유효하다.
전제 조건
GiitHub 애플리케이션 생성
방문Giithub용 개발자 설정.
[OAuth Apps] 탭을 클릭합니다.
프로그램을 만들기 위해 필요한 항목(응용 이름, 홈 URL)을 입력합니다.
콜백 URL은 이때가 적당해도 괜찮다.
만들면 [Client ID] 및 [Client Secret]이 복사됩니다.
Firebase 콘솔 구성
Firebase 콘솔의 Authentication으로 이동하여 시작 또는 Sign-in method 탭을 엽니다.
공급자 일람에서 [Giithub]을 열고 [활성화]를 선택합니다.
그런 다음 Giithub 측에서 복제한 [클라이언트 ID] 및 [클라이언트 기밀]을 여기에 입력합니다.
콜백 URL은 Firebase 및 Giithub 측면에서 일치해야 하기 때문에
복제[인증 호출 URL]를 Giithub 측면으로 설정합니다.
필요한 포장 설치
GiitHub의 로그인 처리 사용github_sign_in 패키지.
pubspec.yaml
dependencies:
flutter:
sdk: flutter
firebase_core: ^0.5.3
firebase_auth: ^0.18.4+1
github_sign_in: ^0.0.3
Flutter Fire 초기화
Firebase 포장의 초기화 처리는 필수적이기 때문에main () 함수에 기술하는 것을 잊지 마십시오.
/lib/main.dart
・・・
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
・・・
로그인을 위한 분류 만들기
로그인, 로그아웃 등의 계정 인증 처리를 담당하는 Wrapper 레벨을 만듭니다.
코드 여기 있어요.
/lib/auth/github_auth.dart
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:github_sign_in/github_sign_in.dart';
class GithubAuthUtil {
static final GitHubSignIn _github = GitHubSignIn(
clientId: '********',
clientSecret: '********',
redirectUrl: 'https://********.firebaseapp.com/__/auth/handler',
);
/// サインイン中か
static bool isSignedIn() => FirebaseAuth.instance.currentUser != null;
/// 現在のユーザー情報
static User getCurrentUser() => FirebaseAuth.instance.currentUser;
/// サインアウト
static void signOut() => FirebaseAuth.instance.signOut();
/// サインイン
static Future<User> signIn(BuildContext context) async {
final UserCredential credential = await signInWithGithub(context);
return credential.user;
}
static Future<UserCredential> signInWithGithub(BuildContext context) async {
final result = await _github.signIn(context);
final AuthCredential githubAuthCredential =
GithubAuthProvider.credential(result.token);
return await FirebaseAuth.instance
.signInWithCredential(githubAuthCredential);
}
}
사용 방법:// 現在のユーザー情報を取得
User _user = GithubAuthUtil.getCurrentUser();
// 現在サインイン済みか
bool isSignedIn = GithubAuthUtil.isSignedIn();
// サインイン
GithubAuthUtil.signIn(context)
.then((user) => setState(() => _user = user));
// サインアウト
GithubAuthUtil.signOut();
동작 확인
로그인 시 GiitHub 인증 화면이 표시되며 인증에 성공하면 사용자 이름, UID, Email 등을 취득할 수 있습니다.
Reference
이 문제에 관하여([Flutter] 애플리케이션에 GiitHub 로그인 기능 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/7oh/articles/4b36fd5eface03텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)