38.2 ENCODEファンクション
このファンクションは、ペイロードをエンコードし、オプションでペイロードを暗号化します。
構文
FUNCTION ENCODE (
p_iss IN VARCHAR2 DEFAULT NULL,
p_sub IN VARCHAR2 DEFAULT NULL,
p_aud IN VARCHAR2 DEFAULT NULL,
p_nbf_ts IN timestamp with time zone DEFAULT NULL,
p_iat_ts IN timestamp with time zone DEFAULT SYSTIMESTAMP,
p_exp_sec IN PLS_INTEGER DEFAULT NULL,
p_jti IN VARCHAR2 DEFAULT NULL,
p_other_claims IN VARCHAR2 DEFAULT NULL,
p_signature_key IN RAW DEFAULT NULL )
RETURN VARCHAR2
パラメータ
パラメータ | 説明 |
---|---|
p_iss |
オプションのiss (発行者)クレームです。
|
p_sub |
オプションのsub (件名)クレームです。
|
p_aud |
オプションのaud (対象者)クレームです。
|
p_nbf_ts |
オプションのnbf (有効期間の開始日)クレームです。
|
p_iat_ts |
オプションのiat (発効日)クレーム(デフォルトのシステムスタンプ)です。
|
p_exp_sec |
オプションのexp (有効期限)クレーム(秒単位)です。開始時間は、nbf 、iat または現在の時刻から取得されます。
|
p_jti |
オプションのjti (JWT ID)クレームです。
|
p_other_claims |
追加のクレームがあるオプションのローJSONです。 |
p_signature_key |
署名用のオプションのMACキー。NULLでない場合、HS256 署名が追加されます。これには、Oracle Database 12c以上が必要です。その他の署名アルゴリズムはサポートされていません。
|
戻り値
VARCHAR2。エンコードされたトークン値です。
例
この例では、Example JWT Recipientによる使用を目的として、Example UserのJWT値を作成し、出力しています。トークンは5分間有効です。
DECLARE
l_jwt_value varchar2(32767);
BEGIN
l_jwt_value := apex_jwt.encode (
p_iss => 'Example Issuer',
p_sub => 'Example User',
p_aud => 'Example JWT Recipient',
p_exp_sec => 60*5,
p_other_claims => '"name1": '||apex_json.stringify('value1')||
',"name2": '||apex_json.stringify('value2'),
p_signature_key => ... encryption key ... );
sys.dbms_output.put_line(l_jwt_value);
END;
親トピック: APEX_JWT