2019.11.8
Vueでカクテルデータベースをリファインする話#18【管理画面をつくろう#2】
昨日JWTで認証を作ろう・・・・・・みたいな感じですげーいろいろ調べてて、今日もそれに関してセキュリティ面で本当に大丈夫なのかとかを吟味してたんですが、そんな中
Auth0っていうサービスを見つけたので、それを導入できないか考えてみます。
これ要するに認証機能を提供するサービスなんですが、無料で7000ユーザーまで認証できて、ソーシャルログイン、いわゆるSSOが2つまで実装可能ということです。外部サービスなので簡単に導入できるのが強みですね。
つまりこれがどういうことを意味するかっていうと
認証機構を自分で開発&セキュリティリスクを抱える必要がないっていうのを意味します。
フリープランでできる範囲としては、SSOをもうちょっと増やしてくれたら使い勝手良かったんですけど、まぁ入門としては悪くないかと思うので導入してみようかなと。
どういう構成になるかとかはまだ分かってない感じなんですけど
auth0-spa-jsなるものがあったり、
サンプルまでgithubにあったので、これを参考にやってみたいなぁ。
って思いながらアプリケーション登録してたら唐突にチュートリアルが始まったので、これに沿ってやってみます。(笑)
で、結果なんですが、とりあえずそれっぽい画面が出てきました。とりあえずログインはできるっぽいんですが、その状態でアクセスしても、表示されるはずのログアウトボタンが表示されないだとか、あとコールバックURLの設定箇所が見当たらないなどの問題が発生しました。
まぁそれはよくて、一番気になったのはやはり
日本語対応をしていないという点に尽きますね。
次回作以降、僕はフロントはVueで、サーバーサイドはLaravelで、っていう構成でプロダクトを作っていくつもりでして、そのためにわざわざ新しい手段での認証を導入しようとしてるんですが、それを踏まえて一般公開した際に、認証画面がこんなんだと、一般ユーザーはどう思うだろうか、という。
まず、いきなりこういう英語のページに飛ばされたら
ふつうは警戒すると思うんですよね。そういう仕様だって仮に説明したとしても
世の中の9割のユーザーは文字の読めないバカだと思って開発すべきって思ってるので、たぶん英語を見た瞬間アレルギー起こすと思うんですよね。(暴言)
ということで、日本語化できないこちらは却下ですね。あと唐突に違うUIのサイトに飛ばされると、
「ほんとにこのサイト大丈夫なのか???」とか思われかねませんしね。API提供ぐらいに留めておいてくれればなあ〜...
じゃあjwt-authに戻るしかないかなぁー・・・・・・と思ってるんですが、学習すべき認証方法の必須条件としては
SSOが利用可能っていうのは最低条件でして、それをラクにするためには
Socialiteの利用が不可欠です。なんてったって公式パッケージですからね。
ってのを考えながら相変わらずいろいろ調べてたんですが・・・・・・
なんかあったんだが・・・・・・。
このサンプルはバチバチにキマってますね。
どういうことかっていうと、まず
Laravel6をベースにしてるので、バージョン違いによる修正が少ないのが予想されます。5.xと比較すると互換性に問題がある場合も少々あったんですが、6.xをベースにした場合は変更は小さいはずです。
それで、構成も似通ってます。Vuel18nとESlintに関しては今回はあんまり関係なさそうなライブラリなので大きな影響を与えることもないでしょう。
あと、今回の例では関係ないんですが
dynamic importという気になる文言が。これは管理画面の習得が終わったら学習しようと思ってたことで、まぁ要するに初期リロードの遅さを解決するための手段ですね。
で、Socialite integration。入ってます、と。サンプルではGithubをサポートしてるみたいですね。まぁなんでもいいです。
これを扱うことができれば今後の開発でも苦労することがなさそうなので、これを利用する方針でいこうかなと思います。
create-projectで最初から作ることも最終手段としてはあるんですが、実装を理解して使えるようになるのがベストなので、ソースコードを見て頑張って習得していきたいところ・・・・・・。
ほんと認証って大変だな。いつまでここで足止め食らうことになるんだろ、、、、、、