24.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

パラメータ

表24-2 ENCODEファンクションのパラメータ

パラメータ 説明

p_iss

オプションのiss (発行者)クレームです。

p_sub

オプションのsub (件名)クレームです。

p_aud

オプションのaud (対象者)クレームです。

p_nbf_ts

オプションのnbf (有効期間の開始日)クレームです。

p_iat_ts

オプションのiat (発効日)クレーム(デフォルトのシステムスタンプ)です。

p_exp_sec

オプションのexp (有効期限)クレーム(秒単位)です。開始時間は、nbfiatまたは現在の時刻から取得されます。

p_jti

オプションのjti (JWT ID)クレームです。

p_other_claims

追加のクレームがあるオプションのローJSONです。

p_signature_key

署名用のオプションのMACキー。NULLでない場合、HS256署名が追加されます。これには、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;