サイトの認証では、独自の認証に加えて、Google や Facebook 等の
外部の認証も使えると、利用者の利便性が増します。
Google を例に外部認証を行いたいと思います。
Facebook 等でも同様に出来るはずです。
「認証」と「認可」の違い。
「認証」は、単に「ID」が本人であるかどうかの確認ですが、
「認可」では、あなたの属性情報や操作の権限を私(=アプリケーション)に認めることになります。
Google API を使う手順はいつも同じです。
「Google Cloud Console」にログインし、プロジェクトを作成して、
アプリケーションに必要な設定を行います。
細かい手順は、画面を使いながら説明していかないといけないので、ここでは割愛させていただきます。
最終的に必要なのは、
「http」でも良いですが、リダイレクトの際、ブラウザが警告する場合があります。
ざっくりした手順ですが、次の通りです。
初めての方には何か面倒そうに思えるかもしれません。
「認可コード」は1回限り有効です。(保存しても意味がありません)
「アクセストークン」は短い有効期間があります。(といっても60分位あります)
それ以降の google とのやり取りは、このアクセストークンを使って行います。
このほかにも「アクセストークン」を再取得する「リフレッシュトークン」もありますが、ここでは説明しません。
リダイレクト先の JSP の URI は Google 側にも設定しておく必要があります。
・呼び出しJSPの例 (html だけでも書けます)
取得したクライアントIDとリダイレクトURIを設定します。
あと、スコープが必要です。スコープは下記リンクから使うサービスの中から選択します。
OAuth 2.0 Scopes for Google APIs
<%@ page contentType="text/html; charset=UTF-8" %>
<%
request.setCharacterEncoding("UTF-8");
String client_id = ""; // 取得した値を設定します
String scope = ""; // 認可で取得したい情報
String redirect_url = ""; // 認可後に受ける自分の場所
String auth_url = "https://accounts.google.com/o/oauth2/auth"
+ "?client_id=" + client_id
+ "&redirect_uri=" + redirect_url
+ "&scope=" + scope
+ "&response_type=code"
+ "&approval_prompt=force"
+ "&access_type=offline"
;
%>
<!doctype html>
<html>
<body>
<a href="<%=auth_url%>">Googleで認証</a>
</body>
</html>
・リダイレクト先のJSPの例
<%@ page contentType="text/html; charset=UTF-8" %>
<%
request.setCharacterEncoding("UTF-8");
String code = (String)request.getParameter("code");
%>
<!doctype html>
<html>
<body>
認可コード:<%=code%>
</body>
</html>
Google で認可を許可した後に、認可コードが表示されればOKです。
| « 前頁 | 次頁 » |