我目前使用的是Vue 3,并且已经集成了来自https://github.com/auth0/auth0-spa-js的Auth 0-spa-js。
我通过Axios向PHP API后端发送请求,并将访问令牌作为GET参数token传入。
服务器端我得到一个异常“JWT字符串必须包含两个点”后,设置步骤从https://github.com/auth0/auth0-PHP。我已经安装了要求,guzzle和dotenv等。目前在PHP 7.4.2。
第一个
在创建与Auth 0 PHP SDK不兼容的令牌时,auth 0-spa-js是否存在问题,或者是否没有传递需要添加的配置设置?我已经按照这两个文档的规定进行了基本配置,并对预期变量进行了双重检查。
2条答案
按热度按时间qvtsj1bj1#
结果我需要将audience参数添加到createAuth0Client、getTokenSilently()和我的Auth0自定义API的PHPSDK解码方法中。
我一定是在文档中遗漏了什么,或者看起来听众参数更像是一个必需的而不是可选的值。
4uqofj5v2#
添加到Brian Barton's answer above,
GetTokenSilentlyOptions
interface解释了应按如下方式传递选项:对我来说,这并不明显,额外的外部对象结构是必要的,所以我不明白为什么我不能让他们的解决方案工作。
其他上下文
这与您在服务器端拥有什么无关,而与您的SPA如何在Authorization Code Flow with Proof Key for Code Exchange (PKCE)之后检索您的JWT令牌(如果您从SPA访问API,则应该使用该流)有关。
我最终找到了这个答案,因为当我未能正确设置
audience
参数时,Auth0并没有发出任何错误的信号。它返回了一个不是格式良好的JWT的“标记”。在我的例子中,它总是有四个或五个点(句点),而实际上应该是两个。