![見出し画像](https://assets.st-note.com/production/uploads/images/59653613/rectangle_large_type_2_cd6f5500cfb2b025147dc0a63603254b.png?width=1200)
Flutter×FirebaseでSNS認証②
Flutter×supabaseのログイン調査してみた
こんにちは、株式会社Pentagonでアプリ開発をしている石渡港です。
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'),
),
);
}
}
こちらを利用して認証を行います
https://pub.dev/packages/twitter_login
登録はこちらから
https://developer.twitter.com/en/apps
必要な情報は下記サイトを参考に登録
https://www.blog.danishi.net/2020/11/17/post-4146/
必要な情報はこちらを参考に
https://gyazo.com/87f20980bc6eb82102691eaafaa7ae00
下記へ割り当てる
final twitterLogin = TwitterLogin(
apiKey: 'apiKey',
apiSecretKey: 'apiSecretKey',
redirectURI: 'tokyo.pentagon.flutterfiretest://',
);
final result = await twitterLogin.login();
こちらにより承認したユーザのauthTokenやauthTokenSecretになるので、TwitterAuthProviderに当てはめることで情報を許可されている範囲で取得することが可能です。
ちなみに下記の情報を割り当てることで、自分のTwitterアカウントを手動で取得することも可能です。
次回はFirebaseログインについて書きます。
この記事が気に入ったらサポートをしてみませんか?