🦋
Flutter×FirebaseでSNS認証②
Flutter×supabaseのログイン調査してみたこんにちは、株式会社Pentagonでアプリ開発をしている石渡港です。 https://pentagon.tokyo Flutter×FirebaseでSNS認証を実装したのでTwitter認証部に関してまとめます。
ソースコード
一部抜粋
import 'dart:convert';
import 'dart:math';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/foundation.dart' show kIsWeb;
import 'package:flutter/material.dart';
import 'package:flutter_signin_button/flutter_signin_button.dart';
import 'package:twitter_login/twitter_login.dart';
// Twitterログイン
Future<void> _signInWithTwitter() async {
try {
UserCredential? userCredential;
if (kIsWeb) {
TwitterAuthProvider twitterProvider = TwitterAuthProvider();
await _auth.signInWithPopup(twitterProvider);
} else {
final twitterLogin = TwitterLogin(
apiKey: 'apiKey',
apiSecretKey: 'apiSecretKey',
redirectURI: 'tokyo.pentagon.flutterfiretest://',
);
final result = await twitterLogin.login();
final AuthCredential credential = TwitterAuthProvider.credential(
accessToken: result.authToken!,
secret: result.authTokenSecret!,
);
userCredential = await _auth.signInWithCredential(credential);
}
final user = userCredential?.user;
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('Twitterログイン ${user?.uid}'),
),
);
} catch (e) {
print(e);
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('Twitterでログイン失敗しました: $e'),
),
);
}
}
final twitterLogin = TwitterLogin(
apiKey: 'apiKey',
apiSecretKey: 'apiSecretKey',
redirectURI: 'tokyo.pentagon.flutterfiretest://',
);
final result = await twitterLogin.login();
こちらにより承認したユーザのauthTokenやauthTokenSecretになるので、TwitterAuthProviderに当てはめることで情報を許可されている範囲で取得することが可能です。ちなみに下記の情報を割り当てることで、自分のTwitterアカウントを手動で取得することも可能です。次回はFirebaseログインについて書きます。