<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
<title>Floris Westerman activity</title>
<link href="https://gitlab.com/FWest98.atom" rel="self" type="application/atom+xml"/>
<link href="https://gitlab.com/FWest98" rel="alternate" type="text/html"/>
<id>https://gitlab.com/FWest98</id>
<updated>2026-10-05T11:47:24Z</updated>
<entry>
  <id>tag:gitlab.com,2026-10-05:6068066261</id>
  <link href="https://gitlab.com/rug-digitallab/products/themis/themis-vscode-extension/-/work_items/54"/>
  <title>Floris Westerman opened issue #54: Drag-n-drop seems broken at RuG Digital Lab / Products / Themis / Themis VSCode Extension</title>
  <updated>2026-10-05T00:31:46Z</updated>
  <media:thumbnail width="40" height="40" url="https://secure.gravatar.com/avatar/c0e30efbd42a9b54f6108189722227720d32d62621c1b07237aee7325b80969d?s=80&amp;d=identicon"/>
  <author>
    <username>FWest98</username>
    <name>Floris Westerman</name>
    <email></email>
  </author>
  <summary type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">

</div>
  </summary>
</entry>
<entry>
  <id>tag:gitlab.com,2026-10-05:6068064763</id>
  <link href="https://gitlab.com/rug-digitallab/products/themis/themis-vscode-extension/-/work_items/53"/>
  <title>Floris Westerman opened issue #53: Login doesn&amp;#39;t work for specific windows at RuG Digital Lab / Products / Themis / Themis VSCode Extension</title>
  <updated>2026-10-05T00:31:03Z</updated>
  <media:thumbnail width="40" height="40" url="https://secure.gravatar.com/avatar/c0e30efbd42a9b54f6108189722227720d32d62621c1b07237aee7325b80969d?s=80&amp;d=identicon"/>
  <author>
    <username>FWest98</username>
    <name>Floris Westerman</name>
    <email></email>
  </author>
  <summary type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<p data-sourcepos="1:1-1:353" dir="auto">When a login flow is initiated from a specific window, and VSC decides to add the <code data-sourcepos="1:83-1:92">windowId</code> parameter, the auth flow can't be properly completed: the <code data-sourcepos="1:152-1:164">redirectUri</code> passed to KC as part of the code exchange will differ from the one passed during the auth flow (the former won't have the <code data-sourcepos="1:288-1:297">windowId</code> parameter since the <code data-sourcepos="1:319-1:333">openid-client</code> library strips it).</p>&#x000A;<p data-sourcepos="3:1-3:75" dir="auto">The solution is to add a custom <code data-sourcepos="3:33-3:39">fetch</code> setting that will re-add the field.</p>&#x000A;<div class="gl-relative markdown-code-block js-markdown-code"><pre data-sourcepos="5:1-17:3" data-canonical-lang="ts" class="code highlight js-syntax-highlight language-typescript" v-pre="true"><code><span id="LC1" class="line" data-lang="typescript">            <span class="k">this</span><span class="p">.</span><span class="nx">_config</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">oidcClient</span><span class="p">.</span><span class="nf">discovery</span><span class="p">(</span><span class="nx">issuer</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">clientId</span><span class="p">,</span> <span class="kc">undefined</span><span class="p">,</span> <span class="kc">undefined</span><span class="p">,</span> <span class="nx">options</span><span class="p">);</span></span>&#x000A;<span id="LC2" class="line" data-lang="typescript">            <span class="k">this</span><span class="p">.</span><span class="nx">_config</span><span class="p">[</span><span class="nx">client</span><span class="p">.</span><span class="nx">customFetch</span><span class="p">]</span> <span class="o">=</span> <span class="k">async </span><span class="p">(</span><span class="nx">url</span><span class="p">,</span> <span class="nx">options</span><span class="p">)</span> <span class="o">=&gt;</span> <span class="p">{</span></span>&#x000A;<span id="LC3" class="line" data-lang="typescript">                <span class="k">if</span><span class="p">(</span><span class="nx">options</span><span class="p">.</span><span class="nx">body</span> <span class="k">instanceof</span> <span class="nx">URLSearchParams</span> <span class="o">&amp;&amp;</span> <span class="nx">options</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="dl">"</span><span class="s2">grant_type</span><span class="dl">"</span><span class="p">)</span> <span class="o">===</span> <span class="dl">"</span><span class="s2">authorization_code</span><span class="dl">"</span><span class="p">)</span> <span class="p">{</span></span>&#x000A;<span id="LC4" class="line" data-lang="typescript">                    <span class="kd">const</span> <span class="nx">oldUri</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="dl">"</span><span class="s2">redirect_uri</span><span class="dl">"</span><span class="p">);</span></span>&#x000A;<span id="LC5" class="line" data-lang="typescript">                    <span class="kd">const</span> <span class="nx">newUri</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">vscode</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nf">asExternalUri</span><span class="p">(</span><span class="nx">vscode</span><span class="p">.</span><span class="nx">Uri</span><span class="p">.</span><span class="nf">parse</span><span class="p">(</span><span class="nx">oldUri</span> <span class="o">??</span> <span class="dl">""</span><span class="p">));</span></span>&#x000A;<span id="LC6" class="line" data-lang="typescript">                    <span class="nx">options</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">"</span><span class="s2">redirect_uri</span><span class="dl">"</span><span class="p">,</span> <span class="nx">newUri</span><span class="p">.</span><span class="nf">toString</span><span class="p">(</span><span class="kc">true</span><span class="p">));</span></span>&#x000A;<span id="LC7" class="line" data-lang="typescript">                <span class="p">}</span></span>&#x000A;<span id="LC8" class="line" data-lang="typescript"></span>&#x000A;<span id="LC9" class="line" data-lang="typescript">                <span class="c1">// @ts-ignore</span></span>&#x000A;<span id="LC10" class="line" data-lang="typescript">                <span class="k">return</span> <span class="nf">fetch</span><span class="p">(</span><span class="nx">url</span><span class="p">,</span> <span class="nx">options</span><span class="p">);</span></span>&#x000A;<span id="LC11" class="line" data-lang="typescript">            <span class="p">};</span></span></code></pre><copy-code></copy-code><insert-code-snippet></insert-code-snippet></div>
</div>
  </summary>
</entry>
</feed>
