ShopifyでSNSログインできるアプリを作ろうと思って調べていたら、ん?と思うことがあったので記事にしました
ShopifyでSNSログインを実現するのはどうするか
Plusプランで使えるマルチパスという機能を使うことで実現可能です(月額2000ドルしますが...)
例えばこのアプリ
ADVANCEDプランに
▼Shopify Plusでご利用可能になる追加機能です▼
ソーシャルログインで簡単登録
とあります
他のプランはあくまで「会員IDとLINE IDを連携」という表現です
つまりPlusプランに入る以外に安全にSNSログインを実現することはできません
でもPlusプランじゃなくてもSNSログインできるアプリが普通にある
Shopifyのアプリストアを見ると、プランに関わらずSNSログインできるアプリが存在します
例えばこの辺
これらは大体以下のような流れでSNSログインを実現しています
1. ショップのSNSログインボタンクリック
2. 別ウインドウでSNSログイン画面表示
3. SNSログイン後、アプリ側にアカウントを作成してSNSのIDと紐付ける。この時メールアドレスはSNS情報のメールアドレス、パスワードはランダムな文字列で生成
4. shopify apiで上記アカウントを作成
5. 別ウインドウの中で、visibility hiddenのshopifyログイン画面(フォームが非表示になっているログイン画面)に遷移し、javascriptで上記メールアドレスとパスワードでフォームが非表示になっているログイン画面をポストする
6. 成功したらログインしていたウインドウを閉じて、ショップ側の画面をリロードする
つまり、Shooifyのログインの仕様が変わったら(例えばreCAPTCHAが必須になったとか)突然ログインできなくなる可能性もあります
そもそも、アプリ側で平文のパスワードを持っているということになるので、セキュリティ的に問題があります
これらのアプリを普通におすすめアプリとして紹介してるブログ等もありますが、使うべきではないと思います
ちなみに
上記アプリは公開されてから何年も経ってますし、どういう見解なのかShopifyに聞いてみました
とのこと、なんともモヤモヤしますが、良くないことは認識しているよう
アプリ使用停止したら既存ユーザーがログインできなくなってしまうからでしょうか