17日目 ユーザー登録機能を作ろう
まず作るのはユーザー登録の部分です。フレームワークによっては最初に作らないと後で困る部分があります。
「枠が作れたら次にユーザー登録機能を作っていく。
ユーザー登録にはいくつか方法があって、一番使われているのがメールアドレス認証。メールアドレスをサイトに打ち込んで、送られてきたメールにあるリンクからユーザー登録できるというもの。
他には電話番号を入力してSMSを送って登録させるもの。
最近増えてきているのは、TwitterやFacebookなどのSNSのAPIを使ってログインするSNS認証。
他にはユーザーIDとパスワードだけ決めて特に認証しなくても作れるようにするのもあるね。
どれを使うかは自由だけど複垢への対応をどうするかにも関わってくる。個人情報に近づけば近づくほど複垢は作りにくくなる。
ただ、認証が必要になるほど、ユーザー登録はしにくくなる。そのあたりはサービスの方針に寄るからどれがいいかはそのサービスしだいだけどね」
「元のサイトがメール認証だからそれでいいと思うけど、どうやってメールを送るの?」
「メールを送るサービスはいくつかある。多くのユーザーへ送る場合はそういうサービスを利用するのがいいと思う。SendGridやAmazon Simple Email Service (SES)などがあるね。
そこまで大きくないサービスだとGmailなんかでも十分。まぁドメインがGmailだと警戒される可能性もあるからあまりお勧めしないけどね……
電話番号を使った認証はSMS認証と呼ばれていて、送信にお金がかかるからあんまり使われないかな。1通あたり数円~10円くらいかかるからユーザー数が多くなればそれだけでお金が飛んでいくね。まぁ複垢対策をやる場合には有効化もしれないけど。
登録も認証も簡単なのはSNS認証だね。すでに使っているアカウントがあればそれを使ってユーザー名やメールアドレスを取得すれば、ユーザー側の手間が省ける。
小説投稿サイトでもこの方式で登録できるところも増えてきているね」
「そういうのは技術的に難しいんじゃないの?」
「有名なフレームワークだと、認証系のライブラリが充実していて、そういった認証に対応している。それを導入するだけで使えるようになるから心配しなくてもいいかな。
あと、BaaSで有名なFireBaseだとSNS認証をできるようになっている。JavaScriptのフレームワークを使う人は面倒なログイン機能は全部サービス側に投げることもできるよ。
作るのが面倒なログイン機能だけど、結構簡単に使えるから、実際に作ってみよう」
「わかった」
ユーザーにどんな情報を付与するかを決めておきましょう。R18や年齢制限をかけたものを掲載するのであれば生年月日も必要になるかもしれません。
ひとまずはユーザーIDとパスワードは必須ですね。どのように認証するかはお好みで。
簡単にしたいのであれば、ユーザーが新規のIDとパスワードを入力して終わり。(特に認証なくても作れるようにする)やメールアドレスとパスワードを入れて終わり(特に認証しない)
などもできます。
複垢対策にするのであれば、メールアドレス認証に加えてSMS認証や、身分証明書の提出がありますね。
そのあたりは作るサイトのコンセプトによります。ランキングとか評価が核になるのであればしっかりしないといけないですね。
今はBaaSサービスを使って、ユーザー登録の機能をそちらにお任せしてしまうのが一番楽なのかな。ソーシャルログインも簡単にできるので。