Catalyst で Google の OAuth を使う
ホントはSAMLをやりたかったんだけど、Google::SAML::Response の使い方はわからないし、
ライブラリを使わないでやるのはますますわからないので、いったん置いとく。
OAuthは前に Facebook のをやったときと、ほとんど同じ。
本家サイトを見てできた。
API Console からAPI を使用するためのキーを取得する。
Product name を適当に登録し、Client ID, Client secret, Redirect URIs を使うのでメモする。
sub index : Path :Args(0) { my ( $self, $c ) = @_; my $app_id = '(API Console の Client ID)'; my $app_secret = '(API Console の Client secret)'; my $authz_endpoint = 'https://accounts.google.com/o/oauth2/auth'; my $token_endpoint = 'https://accounts.google.com/o/oauth2/token'; my $redirect_uri = 'http://localhost:3000/google'; # Redirect URIs # 2) get authorization code if ( my $code = $c->req->param('code') ) { # 3) get access token my $post_params = { client_id => $app_id, client_secret => $app_secret, redirect_uri => $redirect_uri, grant_type => "authorization_code", code => $code }; my $request = POST($token_endpoint, $post_params); my $ua = LWP::UserAgent->new; my $r = $ua->request($request); my $data = decode_json($r->content()); my $token = $data->{access_token}; # 4) get protected resources if ($token) { my $url = 'https://www.googleapis.com/oauth2/v1/userinfo'; (略) $c->response->body($html); } else { $c->response->body('fail to get token'); } } else { # 1) redirect to authorization endpoint my $uri = URI->new($authz_endpoint); $uri->query_form( response_type => 'code', client_id => $app_id, redirect_uri => $redirect_uri, scope => 'https://www.googleapis.com/auth/userinfo.profile' ); $c->res->redirect($uri); } }
マンデラの名もなき看守
アパルトヘイト政策真っ只中の南アフリカ。
グレゴリーは黒人の言葉を話せたので、ロベン島刑務所で情報監視役に就いた。
そこにはテロリストの首謀者とされたネルソン・マンデラも収監されていた。
しかし、彼の真の思想を知るにつれて、黒人に惹かれて心を開いていく。
アパルトヘイトってまだ数十年前の話なんだ・・・ってことを改めて知った。
歴史年表の中で見ても、それがつい最近のことだという実感は沸いていなかった。
今の南アフリカの成長は、アパルトヘイトがなくなったからなんだろうな。
真実を知ることって大事。
そして、知った上で行動に移せることはもっと大事だなって思う。
グレゴリーの妻が、黒人はテロリストだと決め付けているのは、教育のせいだろう。
教育という名の洗脳をされたせいだろう。
誰かにとって都合のいい、嘘で固められた政策を押し通すためには必要なんだろうけど。
最近の竹島とか尖閣とかの問題も、その国の教育が大きく関係してると思うと難しい問題。
真実を確かめようと行動し、真実を知った後に行動を変えたグレゴリーは強い。
軍隊とか、命令は絶対!みたいな空気の中での行動は、なかなかできるもんじゃない。
だけど、機密事項をぺらぺらと家族に話しちゃうのはどうかと思う・・・・
時代が時代だから、ということになるのかもしれないけど、
あれって普通は家族にも話しちゃいけないレベルの内容だよね・・・。
そういう昔っぽい面もありつつ、でもこれは現代の話。