ちゃらまんブログ

エンジニアちゃらまんがサイト立ち上げや技術的な情報を公開するブログ

SNS

ソーシャルログインのエラー(HSTS)

投稿日:

ソーシャルログイン(Google、Twitter、facebook)を実装したのですが、エラーが起きてしまいました。

 

そして、ブラウザによってログインできたりできなかったりというおかしな挙動をしていました。

解決したので、このブログで紹介したいと思います。

 

現象としては、自分で制作しているWEBアプリにソーシャルログイン機能をつける際に、Chrome、Firefox、Android4.4ではうまく動作し、iOS8のsafariだとエラーが起こります。

 

うまくいくブラウザとそうでないブラウザがあるなんて理由が分からず、初めはサーバを疑ったり、仕組みを疑ったりしていたのですが、解決するとなんてことない理由でした。。

 

原因はSSLのコールバックURLに「https」を含めていなかったこと。

通常の「http」でコールバックしようとしていたためエラーになっていました。

Router::urlからurlを自動生成していたので、デフォルトではSSLのコールバックURLになっていなかったのです。これは意外と盲点でした。

では、なぜhttpでもうまくいくブラウザがあるのかを説明します。

それは「HSTS機能」が有効になっており、自動でSSL化されていたためだったのです。

※HSTSとは、強制的にHTTPSへリダイレクトし、以降のそのドメインへの接続はすべてHTTPSとする機能となります。

HSTSはサーバで設定するもので、設定してあるとブラウザは自動的にSSLを強制しますので、コールバックURLも適切にリダイレクトされ、問題なかったというわけです。

ただ、ブラウザ側でHSTSのサポートがされていない場合には強制されずにエラーになっていたということです。

詳しい対応状況は以下の「ブラウザ実装状況」を確認してみてください。

https://developer.mozilla.org/ja/docs/Web/Security/HTTP_Strict_Transport_Security

 

-SNS

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

関連記事はありませんでした