Android SDK中AuthenticationAPIClient的audience参数设置及refresh token为空问题咨询
Android SDK中AuthenticationAPIClient的audience参数设置及refresh token为空问题咨询
嘿,我来帮你搞定这个问题!你碰到的refresh token为空的情况,确实和offline_access权限以及audience参数的设置直接相关,下面一步步给你讲清楚操作方法:
通过请求构建器设置audience
虽然AuthenticationAPIClient本身没有直接暴露audience的设置方法,但你可以在构建无密码邮箱请求的时候,借助PasswordlessEmailRequest.Builder的setAudience()方法来指定目标audience。同时别忘了在scope里加上offline_access,这是获取refresh token的必要条件。给你个代码示例:val passwordlessRequest = PasswordlessEmailRequest.Builder() .setEmail("user@example.com") .setConnection("email") .setAudience("https://your-api-identifier.com") // 这里填你的API标识符 .setScope("openid profile email offline_access") // 必须包含offline_access .build() val auth0 = Auth0("你的客户端ID", "你的Auth0域名") AuthenticationAPIClient(auth0).passwordlessWithEmail(passwordlessRequest) .start(object : Callback<Credentials, AuthenticationException> { override fun onSuccess(credentials: Credentials) { // 现在应该能拿到有效的refresh token了 } override fun onFailure(error: AuthenticationException) { // 处理认证失败逻辑 } })确认Auth0后台API配置
光代码设置还不够,得去Auth0后台检查对应的API配置:- 找到你要访问的API,确保它的**标识符(Identifier)**和你代码里设置的audience完全一致;
- 在API的"Settings"里,确认已经开启了允许
offline_access权限(一般在"Allowed Scopes"或者类似选项里)。
常见坑点提醒
要是还是拿不到refresh token,先检查这两点:- 有没有把
offline_access加到scope里?少了这个,Auth0绝对不会返回refresh token; - audience是不是填错了?必须和API的标识符完全匹配,不能有拼写错误或者多余的后缀。
- 有没有把
备注:内容来源于stack exchange,提问作者KnightsForce
相关产品推荐
相关产品推荐

