TagoLine使い方

前提条件

下記の環境変数が設定されていることが前提となります。

LINE_CALLBACK_URL
LINE_CHANNEL_ID
LINE_CHANNEL_SECRET

 このGemの基本理念

Line等のプラットフォームを使ってログインする場合は、できることは多い。 Lineでも普通は

  • ログインする
  • リダイレクトのURLパラメーターでcodeを受け取る
  • codeをLineに送ってアクセストークン、リフレッシュトークン、idトークンなど色々受け取る。
  • アクセストークンをすでに持っている時は、その有効性を確認する。   有効である場合は上のプロセスは実行しなくて良い
  • idトークンも持っていれば上のプロセスは不要
  • idトークンを送って個人情報を取得する
  • アクセストークンを持っている場合はリフレッシュトークンを利用してアクセストークンを更新できる

とか、ものすごく複雑になる。

このGemではそんな面倒なことをせず

  • ログインページからリダイレクト
  • codeを受け取る
  • idトークンを受け取り、それをLineに送る
  • アカウントの情報を受け取る だけをやることにした。

CSRF対策になるようにstateのチェックはしているがnoceなどは使っていない。

 使い方

基本的な使い方は次の2つだけです

ログインボタン

ビューの中でこう書きます。

<%= TagoLine::LoginButton.show(controller) %>

セッションを使うため、引数にcontrollerが必要です

ログインのプロセス

TagoLine::LoginAction.loginProcess(self)

リダイレクト先のコントローラーのアクションでまずこのように書く。

こうすると sessionの中にline_sub,line_name,line_pictureが入ります。

また、これ以外にもlogoutProcessを用意しており、そこでセッションの中身をクリアします