OmniAuth-mixiとjpmobileを組み合わせてガラケー対応する方法

RubyのWebアプリでmixiの認証機能を手軽に組み込める「 OmniAuth-mixi」ですが、標準の機能でもdisplayクエリパラメータを指定することで、スマフォ対応することが可能です。

redirect '/auth/mixi?display=touch'

でも、ガラケー端末向けには、ちょっと工夫が必要になります。これは、mixiのOAuth2対応では、PC&スマフォの認可画面と、ガラケー向けの認可画面とで、URLが異なるという事情から来ています。例えばjpmobileを使っている場合であれば、jpmobileの機能を使ってガラケーからのリクエストかどうかを判断して、認可画面の飛び先を変えるというテクニックを使うことで対応できます。

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :mixi, ENV['CLIENT_ID'], ENV['CLIENT_SECRET'],
           :setup => lambda {|env|
             request = Rack::Request.new(env)
             env['omniauth.strategy'].options[:client_options][:authorize_url] =
               'http://m.mixi.jp/connect_authorize.pl' if request.mobile?
           }
end

もしjpmobileを使ってガラケーにも対応したいとお考えの方は、ぜひ上記を試してください。

このエントリーをはてなブックマークに追加

関連記事

2023年のRemap

Remapにファームウェアビルド機能を追加しました

Google I/O 2023でのウェブ関連のトピック

2022年を振り返って

現在のRemapと今後のRemapについて