如何在 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 字符串?