0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ChatGPT o3 mini-highとFirebaseとStripeを使って月額課金制ゲームをつくる(1)

Posted at

はじめまして。

最近ChatGPTを使ってインディーズゲーム制作に目覚めたHirotoと申します。

今回はChatGPT o3 mini-highとFirebase,Stripeを使って、サーバーを自分でレンタルまたは購入することなく月額課金制オンラインRPGを作った話をしようと思います。

できたゲームは以下
https://codequest-e825e.web.app/
(まだ課金はテスト中なのとゲーム内容はかすっかす)

今回から躓いた点などをQiitaで共有していきたいと思います。

・躓いた点1

・Firebaseのメール認証機能がうまく動作しない

基本的にChatGPTにすべてを聞きながらFirebaseのデフォルト設定でログイン画面を追加したのですが、どうもうまくいきませんでした。

英語の文献を探しまくった結果、どうも以下の「メール列挙保護(推奨)」のチェック項目を外すといいそうです。

スクリーンショット 2025-02-20 061738.png

これで普通のログインができるようになりました!

でも、推奨って書いてあるけど大丈夫?って話ですが、メール列挙保護って何?って方は以下の説明を読んでください。

メール列挙保護とは(以下ChatGPT)

「メール列挙保護」とは、ウェブサイトやオンラインサービスにおいて、攻撃者がシステム内の有効なメールアドレスを自動的または体系的に抽出(列挙)するのを防ぐためのセキュリティ対策のことです。

主なポイント
メールアドレスの保護:
ユーザーのメールアドレスが悪意のある第三者に大量に収集されると、スパムメールの送信やフィッシング詐欺などのリスクが高まります。メール列挙保護は、こうしたリスクを低減するための重要な手法です。

自動化ツール対策:
ボットやスクリプトによる自動化されたアクセスから、メールアドレスを抽出されるのを防止するため、CAPTCHA(画像認証)やレートリミッティング(一定期間内のアクセス回数制限)などの技術が使用されることが一般的です。

エラーメッセージの工夫:
例えば、ユーザー登録やパスワード再設定時に、「入力されたメールアドレスは存在しません」と明確に返答するのではなく、常に同じ曖昧なメッセージを返すことで、攻撃者が有効なメールアドレスを推測できないようにする方法も取られます。

このように、メール列挙保護は、個人情報の漏洩を防ぎ、ユーザーのプライバシーとセキュリティを確保するための重要な対策となっています。

つまりはログイン時のエラーメッセージを元にして有効なメールアドレスを推測されるのを防ごうってわけですね!

でも、現状うまく機能していないのでOFFにしてOKです。(しらんけど)

・躓いた点2

Firebase側とStripeの連携が難しい!!

2日かけてChatGPTと戦いましたが、FirebaseのFunctions機能を使うとき、バージョン1を使わないとうまくいかないことがありました。

具体的にはもう忘れましたがよくわからんエラーが出るときは以下のコードでFirebaseのV1を使うようにするとうまくいくことがあります。

index.js
// functions/index.js
const functions = require("firebase-functions/v1");

まとめ

・Firebaseのメール列挙保護を切る
・Functionsを使ってよくわからんエラーが出るときはV1を使う

他にも色々躓きましたがだいたいはChatGPT先生がうまくやってくれました。

それではクソゲーをお楽しみください。
【古き良きテキストベースRPG コードクエスト】

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?