同意画面のURL作成
概要
認可コード取得にはユーザーの許可が必要です。
同意画面へ遷移する際は https://alis.to/oauth-authenticate
の URL に以下のクエリパラメータを加えてください。
- client_id
- redirect_uri
- scope
- code_challenge
- code_challenge_method
- response_type
各パラメータ説明
client_id
OAuth アプリケーションを登録した際に発行された client_id を指定して下さい
redirect_uri
OAuth アプリケーションを登録した際に指定した redirect_uri の内一つを指定して下さい。
scope
OAuth アプリケーションのscopeを指定します。
read
もしくは write
を指定できます。read
、write
によって使用できるAPIの権限が異なります。詳細は権限一覧を確認ください。
code_challenge
PKCEで使用するパラメータです。 ALIS API を使用するアプリケーション側で、リクエスト毎に code_verifier、code_challenge を生成し管理して下さい。
例)
code_verifier = "dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk"
code_challenge = "E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM"
code_verifier, code_challenge 生成例 (JavaScript)
"use strict";
const base64url = require("base64url");
const sha256 = require("js-sha256");
const code_verifier = get_code_verifier();
const code_challenge = get_code_challenge(code_verifier);
console.log(`code_verifier = ${code_verifier}`);
console.log(`code_challenge = ${code_challenge}`);
function get_code_challenge(str) {
const hash = sha256.arrayBuffer(str);
return base64url(hash);
}
function get_code_verifier() {
const buf = Buffer.alloc(32);
for (let i = 0; i < buf.length; i++) {
const random_num = Math.floor(Math.random() * 256);
buf.writeUInt8(random_num, i);
}
return base64url(buf);
}
code_challenge_method
code_challenge 生成に利用した関数を指定します。上記生成例の場合は SHA256 を利用しているため S256
を指定します。
response_type
固定値 code
を指定します。
URL例
- client_id =
12345678901234
- redirect_uri =
https://example.com
- scope =
read
- code_challenge =
hcCb3gToI1GPZeS_SIYWvaNT_5u0GB1oqOGQJqRKMSE
- code_challenge_method =
S256
- response_type =
code
上記パラメーターの場合,URL は下記の通りです。
https://alis.to/oauth-authenticate?client_id=12345678901234&redirect_uri=https%3A%2F%2Fexample.com&scope=read&code_challenge=hcCb3gToI1GPZeS_SIYWvaNT_5u0GB1oqOGQJqRKMSE&code_challenge_method=S256&response_type=code