6/16.log
「なりすまし」をなくしたい
「なりすまし」とはAさん以外の人がAさんを演じることを言います。基本的には悪いことだということはわかると思います。例えば間違って個人情報を渡してしまったり、嘘をつかれたり。特に今回自分が作成しているアプリケーションではなりすましが発生し嘘の情報を流された場合の損害が大きくなってします。
そこでどのようになりすましをなくすか考えてみたのですが「twitterログイン使えば良くね?」となりました。twitterって@が始まるやつがありますよね?名前は被る可能性があっても@から始まるやつは重複がないはずです。そこでその@をユーザーに表示させるとなりすましが不可能なのではと思っています。
twitterなどの外部ログインなしでなりすましを無くそうとすると自分のアプリケーションにも被らないIDや文字列を設定できるようにする必要があると思います。
しかし、今回のアプリケーションではTwitterとの連携をしようと思っておりそのなりすましは極力避けたいためtwitterログインを採用しました。
そこで失敗したらどうする?
firebaseでのユーザー情報をバックエンドとも共有したいということはよくあることだと思います。その場合処理の流れとしては
1.ユーザーがfirebaseを通して認証
2.認証が確認できたらバックのapiを叩く
3.バックは送られてきた情報の有効性を確認、DBへ保存
といった流れとなると思います。この時に例えば1は成功したが3がなんだかの理由で失敗するとダメですよね。firebase上にはユーザーが登録されているがバックでは登録されていないということになると思います。この時バックに情報が登録できないため退会もできなければログインもできないといったことになりかねません。
これを防ぐにはどうすれば良いのか。失敗した時にもう一度apiを叩く(通信の失敗ならこれで防げそう)、それでも失敗すればfirebaseからもユーザー登録を消しなかったことにするといった案があります。検討中です。これで良さそうなら実装してみます。
この記事が気に入ったらサポートをしてみませんか?