如何在 Unity 3d 中使用 JSON Web Token (JWT)?

Posted

技术标签:

【中文标题】如何在 Unity 3d 中使用 JSON Web Token (JWT)?【英文标题】:How to use JSON Web Token (JWT) in Unity 3d? 【发布时间】:2015-09-23 09:32:30 【问题描述】:

我正在尝试通过在 Unity 3D 中使用 JSON Web 令牌 (JWT) 来实现身份验证。我在 google 和 GitHub 上搜索了很多,没有发现任何有用的东西。 GitHub上有一个.NET库,但我不知道怎么用。

https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet

我是 Unity 新手,对此有任何帮助都会很棒。

【问题讨论】:

您好,您可以创建一个 HttpRequest 并将其设置为 JWT 身份验证的标头。 你能解释一下吗?正如我所说,我是统一的新手。 我对unity一无所知,但我确信在几乎每个框架中,都有一些api可以连接到网络。您可以阅读此docs.unity3d.com/ScriptReference/Network.Connect.html 文档。或者这个问题***.com/questions/8951489/unity-get-post-wrapper 我知道如何连接到网络,这不是我的问题。我只想用 JWT 统一编码和解码 JSON。 我看到了这篇解释编码和解码的文章。 codeproject.com/Articles/890684/… 【参考方案1】:

抱歉耽搁了,

我发现了这个:Jwt.Net

它实际上支持unity3d所需的正确.NET版本,即3.5 只需尝试找到DLL,然后将它们放入您的统一项目中。

希望对你有帮助。

【讨论】:

【参考方案2】:

这是在 Unity 中使用 C# 解码 JSON Web 令牌的一种方法

var parts = token.Split('.');
if (parts.Length > 2)

    var decode = parts[1];
    var padLength = 4 - decode.Length % 4;
    if (padLength < 4)
    
        decode += new string('=', padLength);
    
    var bytes = System.Convert.FromBase64String(decode);
    var userInfo = System.Text.ASCIIEncoding.ASCII.GetString(bytes);

【讨论】:

【参考方案3】:

它不适用于 unity,因为它适用于 .Net 3.5。 (https://github.com/jwt-dotnet/jwt)

Unity 仍在使用.Net 2.0 @ version 5.2

【讨论】:

以上是关于如何在 Unity 3d 中使用 JSON Web Token (JWT)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Unity3D 中将类对象转换为 JSON 字符串?

如何解决 Unity3D iOS 版本上的 AOT 和代码剥离

unity3d如何读取ulf文件

Unity3d使用json与javaserver通信

什么是从 unity3d 发送 json

unity3d如何动态读取外部的TXT文件到数组?