LINE WORKS의 JWT 인증을 PHP로 통과해 본다
composer로 jwt 라이브러리를 넣어 인증하는 것이 많았기 때문에 순수 PHP로 넣으면 이렇게 된다고
물건을 썼다.
<?php
/**
* @property strign rsa_key プライベートキー(実際はセキュアな場所におかないとだめ)
*/
$rsa_key = "-----BEGIN PRIVATE KEY-----
[ここは発行されたプライベートキーを入れる]
-----END PRIVATE KEY-----";
/**
* @property strign server_id サーバーID
*/
$server_id = "[ここも発行されているサーバーIDを入れる]";
//Header作成
$header = '{"alg":"RS256","typ":"JWT"}';
$header = base64_encode($header);
//URLSafeな形で置換
$header = str_replace(array('+', '/', '='), array('-', '_', ''), $header);
//body作成 issはサーバーID
$body = '{"iss":"%s","iat":%s,"exp":%s}';
//生成は現在時刻、満了は30分後に設定
$body = sprintf($body, $server_id, time(), time() + 1800);
$body = base64_encode($body);
$body = str_replace(array('+', '/', '='), array('-', '_', ''), $body);
//headerとbodyをつなげたもの
$sha_hash = $header . "." . $body;
//電子認証を行うアルゴリズムはSHA256にしないといけない
openssl_sign($sha_hash, $encrypted, $rsa_key, OPENSSL_ALGO_SHA256);
$signature = base64_encode($encrypted);
$signature = str_replace(array('+', '/', '='), array('-', '_', ''), $signature);
//JWT生成
echo $header . "." . $body . "." . $signature;
이 JWT를 사용하여 POSTman으로 인증을 통과하면
이런 식으로 200OK가 돌아와서 성공한다
본래는 도서관에서 할 것입니다만, 그것이 여러가지 이유로 할 수 없는 사람은 이런 느낌으로 인증할 수 있다는 이야기였습니다
Reference
이 문제에 관하여(LINE WORKS의 JWT 인증을 PHP로 통과해 본다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/raharu0425/items/bd1aab00eea516b376b6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)