悠々としたTECH日記

「TECH日記」と言いながらそんなに面白いこと書いてない。備忘録的な感じ。 もちろん、宣伝とかもするけど、ブログを基本的にTwitterの延長としか考えてないので、その程度に。あと、作文の練習も兼ねて。

Ruby Sinatra を使ってGoogle認証をする(実験~一気に解決編)

前置き

十数日前にSinatraGoogleOAuth認証をしようとしたゆ~さんの成功への道は非常に困難なものであったが、また一筋の光が見えてきているのであった。
↑前回の下調べ編です。
なんか見つけた

いろいろと調べていくうちに、このようなリポジトリを見つけた。
んで、額にしわを寄せながら、英語を解読していくと、なんか OmniAuth と連動してGoogleOAuth認証を簡単にできるよ!!的なツールと理解できた。
それで、じゃあやってみようということで、
まずはGemfileに以下を追記
SinatraのBundleを使うことになっているので、インストールする必要があるみたいだが、元から入ってたのでその作業は省けた。)
そして、 bundle install を実行。
ついでに、ここの段階で exportコマンドを使用して、サーバーへの環境変数の設定をしておく。
その後がまた苦労した。
先ほど、rackもインストールしていたので、ここでRackも使用することに。
これによってちょっと難しくなってくる。
とにかくリポジトリのReadMeの通りにやってみる。
Config.ru で App.new をしているので、当然ながらに App Class を作んなきゃいけない。
んで、また ReadMEを見てみると、どうやら、/auth/google_oauth2/callback にPOSTで帰ってきて、情報は、request.env['omniauth.auth'] に保存されているらしい。
...でも取り出し方がわかんない。(;´・ω・)
試行錯誤の結果、ようやく仕組みがわかってくる。
返ってくる形式は、
こんな感じらしく、それを取り出すには...
これを実行すると、きちんとブラウザ上にメールアドレスが表示される。
どうやら、きちんと取得された模様。
...とまあ、Googleの認証はうまく行ったけど、なんとあのPostのあとに、 erb の表示をするように付け加えたらうまいように表示してくれないので、まだまだ記事のネタはたくさんありそう。
それについてはまた後程。(;´・ω・)