OAuth2
認証と権限の付与のためのオープンな標準規格
リソースの所有者が第三者のクライアントに対して、プライベートなデータ(現在の状況やツイートなど)にアクセスするための権限を移譲するための仕組みです。
アクセストークンというデータが送受信される。
プライベートなデータにアクセスしない場合にも役に立つ
既存の認証サービスでの認証情報を使って第三者のサイトにログインすることが可能になり、その際に認証情報が第三者のサイトに渡ることはありません。
流れ
ユーザーはクライアントアプリケーションへのログインに利用する認証プロバイダを選ぶ
ユーザーはその認証プロバイダーのWebサイトにリダイレクトされる。
リダイレクト先のURLには、クライアントアプリケーションのID値が含まれる。 ここでユーザーは、クライアントアプリケーションによるアクセスを許可するかどうか尋ねられる。
ユーザーは認証プロバイダーに対してログインし、クライアントアプリケーションから求められているアクセスを許可する。
ユーザーはクライアントアプリケーションへと再びリダイレクトされる。ここには認可コードと呼ばれるデータが含まれている。
内部で、クライアントアプリケーションは認証プロバイダーに認可コードを送信する。認証プロバイダーはアクセストークンを返す。
クライアントアプリケーションはアクセストークンを含む認証済みのリクエストを行い、ユーザー情報や現在の状況などを取得する。
実装
Go言語→goauth2, Gomniauth