DeviceCheck:授权令牌丢失或格式错误

时间:2018-01-25 15:43:54

标签: ruby-on-rails json jwt ios11 devicecheck

我试图在iOS11中使用Apple的新DeviceCheck机制实现免费试用机制。我已经在RAIL 4中实现了服务器部分。这里有相当多的代码,所以我把它放在一个要点:https://gist.github.com/jmfriend/b86f52f8f0649ad4cae176c08b77f000

我收到错误:"遗漏或格式错误的授权令牌"。这表明我在为AuthKey _ #####。p8文件生成JWT时做错了。

此代码也在要点中,但为了便于参考,鉴于它可能出现的问题是处理p8文件的代码:

$addTypeCommand = Get-Command -Name 'Add-Type'
$addTypeCommandInstance = [Activator]::CreateInstance($addTypeCommand.ImplementingType)
$resolveAssemblyMethod = $addTypeCommand.ImplementingType.GetMethod('ResolveReferencedAssembly', [Reflection.BindingFlags]'NonPublic, Instance')
$compilerParameters = New-Object -TypeName System.CodeDom.Compiler.CompilerParameters
$compilerParameters.CompilerOptions = '/debug-'

foreach ($reference in $ReferencedAssemblies)
{
    $resolvedAssembly = $resolveAssemblyMethod.Invoke($addTypeCommandInstance, $reference)
    $compilerParameters.ReferencedAssemblies.Add($resolvedAssembly)
}

$compilerParameters.IncludeDebugInformation = $true
Add-Type -TypeDefinition $TypeDefinition -CompilerParameters $compilerParameters

1 个答案:

答案 0 :(得分:0)

"缺少或格式错误的授权令牌"此实例中的问题是由使用应用程序标识符引起的:xxxx.com.companyname.subdomain。*在使用应用程序的开发版本时。在您的应用的实时版本中,因为此应用ID最终是一个明确的应用ID,它将起作用。

我已经测试了这个,通过使用不同的配置文件来使我的应用程序的开发版本使用显式的App ID。

'无法找到位状态'事实证明,只是意味着你还没有为这个设备设置任何位。在设置其位之前,您不需要验证设备。注意还更新了RAIls要点,以便对现场工作进行编码。