24
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

serverlessでtwitter認証を作ってみた

Posted at

概要

serverlessを使って、サーバレスにTwitter認証するサンプルを作りました。
https://github.com/abeyuya/serverless-auth

serverlessで似たようなものを作る際の参考になれば嬉しいです。:beer:

やれること

サンプル

Twitter認証をして、access_tokenとaccess_token_secretをlambdaで受け取ることができます。

そのtokenをDynamoDBとかに保存しておいて、後で何かAPI叩くのに使ったりする用途等を想定しています。

サンプルでは受け取ったtokenをそのままページに返しています。

やりたかったこと

こういうやつ: http://dmd.netmarble.jp/

静的なWebサイトなんだけど、「Twitter認証することで何かしらのコンバージョンとする」みたいなことがやりたい場合に、その要件のためだけにサーバサイドを構築するのは嫌だなぁ、というモチベーションです。

実装の解説

  1. webサイトからこのシステム(/twitter/auth)にリンクで飛んでくる
  2. request_tokenとかを取得してTwitter認証画面にリダイレクト
  3. Twitter上で認証してもらう
  4. callbackでこのシステムに戻ってくる(/twitter/callback)
  5. access_tokenを取得する
  6. もとのWebサイトにリダイレクトで返す

このシステムはリクエスト受けたら何かしら処理をして、リダイレクトでどこかに飛ばすという流れなので、ユーザに見える画面は無いです。

Good

上記のような用途ならlambdaとかserverlessはぴったりハマるなと思いました。

  • twitter認証された(lambdaが稼働した)分だけしか追加でお金かからない
    • 件数によるけど、よっぽど無料枠に収まるのでは
  • たぶん落ちない
    • 負荷とかスケールの問題はAWSに丸投げ
    • ログインユーザ管理とか死活監視とかも考えなくて良い
  • マイクロサービスっぽい?ので、別の案件でもそのまま使い回しやすい

Bad

  • serverlessの学習コスト
    • 楽しい
  • serverlessのメンテナンスコスト
    • バージョンアップが激しい
    • 一度作ってその後手を入れないなら、あんま気にしなくて良いような気がする

その他

たぶん似たようなやつ: https://github.com/laardee/serverless-authentication-boilerplate

これはReadmeとかソース読んでみて、Twitter認証に使えるかわからなかったので、結局自分でサンプルを作ってみたといういきさつです。

24
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?