<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>디자인원엑스 &amp;gt; 디자인원엑스 &amp;gt; 플러그인</title>
<link>https://re.designonex.com/bbs/board.php?bo_table=plug_in</link>
<language>ko</language>
<description>플러그인 (2025-12-15 01:49:14)</description>

<item>
<title>MB 일회용 보안 토큰 1.0</title>
<link>https://re.designonex.com/bbs/board.php?bo_table=plug_in&amp;amp;wr_id=3</link>
<description><![CDATA[<p><strong style="font-size:16px;"><img src="https://designonex.com/data/editor/2512/1765979829_4830.png" alt="1765979829_4830.png" /></strong></p><p><strong style="font-size:16px;"><br /></strong></p><p><strong style="font-size:16px;">일회용 보안 토큰(One-Time Token) 기능</strong></p><p><br /></p><p>클라이언트가 서버에 연결할 때 요청할 수 있는 일회용 인증 토큰 기능이 새롭게 추가되었습니다.</p><p><br /></p><ul style="list-style-type:circle;"><li>서버에서 직접 안전한 토큰을 생성하며, 10초 후 자동으로 폐기됩니다.</li><li>특정 프레임워크나 언어에 종속되지 않아 웹, 앱, 서버 등 모든 환경에서 사용 가능합니다.</li><li>토큰은 서버 내부에서만 관리되므로, 외부 서비스가 민감한 인증정보를 공유할 필요가 없습니다.</li><li>이제 어떤 플랫폼에서도 동일한 방식으로 토큰을 발급받아 WebSocket 통신에 활용할 수 있습니다.</li></ul><p><br /></p><p style="font-size:14.4px;"><span style="font-size:14pt;"><span style="font-weight:bolder;">클라이언트 사용법</span></span></p><pre style="font-family:'ui-monospace', 'SFMono-Regular', Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;color:rgb(31,41,55);background-color:rgb(255,255,255);font-size:14.4px;"><code class="language-javascript hljs">ws.<span class="hljs-title function_">send</span>(<span class="hljs-title class_">JSON</span>.<span class="hljs-title function_">stringify</span>({ <span class="hljs-attr">type</span>: <span class="hljs-string">"get_token"</span> }));
</code></pre><pre style="font-family:'ui-monospace', 'SFMono-Regular', Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;color:rgb(31,41,55);background-color:rgb(255,255,255);font-size:14.4px;"><code class="language-javascript hljs">
{
  <span class="hljs-string">"type"</span>: <span class="hljs-string">"token"</span>,
  <span class="hljs-string">"value"</span>: <span class="hljs-string">"aDif9Kf9S-z1rfxSOK3..."</span>,
  <span class="hljs-string">"expire"</span>: <span class="hljs-number">10</span>
}
</code></pre><p style="font-size:14.4px;">{ "type": "token", "value": "랜덤값", "expire": 10 }</p><p style="font-size:14.4px;"><br /></p><p style="font-size:14.4px;">토큰은 서버 메모리에 저장되고 10초 후 자동 만료</p><pre style="font-family:'ui-monospace', 'SFMono-Regular', Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;color:rgb(31,41,55);background-color:rgb(255,255,255);font-size:14.4px;"><code class="language-javascript hljs">
<span class="hljs-keyword">const</span> group = <span class="hljs-string">"getToken"</span>;
<span class="hljs-keyword">const</span> ws = <span class="hljs-keyword">new</span> <span class="hljs-title class_">WebSocket</span>(<span class="hljs-string">'wss://designonex.com:14147/?group='</span> + group);

ws.<span class="hljs-title function_">addEventListener</span>(<span class="hljs-string">"open"</span>, <span class="hljs-function">() =&gt;</span> {
    ws.<span class="hljs-title function_">send</span>(<span class="hljs-title class_">JSON</span>.<span class="hljs-title function_">stringify</span>({ <span class="hljs-attr">type</span>: <span class="hljs-string">"get_token"</span> }));
});

ws.<span class="hljs-title function_">addEventListener</span>(<span class="hljs-string">"message"</span>, <span class="hljs-function">(<span class="hljs-params">event</span>) =&gt;</span> {
    <span class="hljs-keyword">try</span> {
        <span class="hljs-keyword">const</span> data = <span class="hljs-title class_">JSON</span>.<span class="hljs-title function_">parse</span>(event.<span class="hljs-property">data</span>);

        <span class="hljs-comment">// type이 token인 경우만 따로 처리</span>
        <span class="hljs-keyword">if</span> (data.<span class="hljs-property">type</span> === <span class="hljs-string">"token"</span>) {
            <span class="hljs-title function_">alert</span>(<span class="hljs-string">"TOKEN: "</span> + data.<span class="hljs-property">value</span>);  <span class="hljs-comment">// 토큰 값만 출력</span>
        } <span class="hljs-keyword">else</span> {
            <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">"Other message:"</span>, data);
        }
    } <br />});</code></pre>]]></description>
<dc:creator>관리자</dc:creator>
<dc:date>2025-12-15T01:49:14+09:00</dc:date>
</item>

</channel>
</rss>
