You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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配置:

    1. 找到你要访问的API,确保它的**标识符(Identifier)**和你代码里设置的audience完全一致;
    2. 在API的"Settings"里,确认已经开启了允许offline_access权限(一般在"Allowed Scopes"或者类似选项里)。
  • 常见坑点提醒
    要是还是拿不到refresh token,先检查这两点:

    • 有没有把offline_access加到scope里?少了这个,Auth0绝对不会返回refresh token;
    • audience是不是填错了?必须和API的标识符完全匹配,不能有拼写错误或者多余的后缀。

备注:内容来源于stack exchange,提问作者KnightsForce

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 12:14:09