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を用意しており、そこでセッションの中身をクリアします