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

如何在原生Android应用中集成Ory?是否有对应SDK可用?

在原生Android应用中集成Ory的方案

1. 官方SDK现状

Ory目前没有官方维护的原生Android SDK,官方文档主要覆盖Web、后端以及Flutter、React Native这类跨平台框架的集成方案,Android原生确实属于未覆盖的区域。

2. 无需从零实现PKCE的简化方案

你不用完全从头编写PKCE流程,可以借助成熟的OAuth2/OpenID Connect客户端库来减少重复工作:

  • 使用AppAuth-Android:这是Google维护的开源库,原生支持OAuth 2.0和OpenID Connect,内置PKCE实现,能直接对接Ory的认证端点。
  • 提前在Ory控制台配置:在项目的应用设置里添加Android应用的包名、签名哈希,同时配置允许的重定向URI(比如com.yourapp://ory-callback)。

3. 核心实现步骤(基于AppAuth-Android)

  • 添加依赖到build.gradle:
    dependencies {
        implementation 'net.openid:appauth:0.11.1'
    }
    
  • 配置Ory授权服务端点:
    val serviceConfig = AuthorizationServiceConfiguration(
        Uri.parse("https://你的Ory项目域名/oauth2/auth"),
        Uri.parse("https://你的Ory项目域名/oauth2/token")
    )
    
  • 构建授权请求(自动生成PKCE参数):
    val authRequest = AuthorizationRequest.Builder(
        serviceConfig,
        "你的客户端ID",
        ResponseTypeValues.CODE,
        Uri.parse("com.yourapp://ory-callback")
    ).build()
    
  • 发起授权流程:
    val authService = AuthorizationService(this)
    val intent = authService.getAuthorizationRequestIntent(authRequest)
    startActivityForResult(intent, AUTH_REQUEST_CODE)
    
  • 处理回调并交换令牌:
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == AUTH_REQUEST_CODE) {
            val response = AuthorizationResponse.fromIntent(data)
            val ex = AuthorizationException.fromIntent(data)
            response?.let {
                authService.performTokenRequest(it.createTokenExchangeRequest()) { tokenResponse, exception ->
                    // 处理返回的access token、refresh token,完成本地存储
                }
            }
        }
    }
    

4. 后续补充逻辑

  • 令牌刷新:当access token过期时,用refresh token调用Ory的令牌端点获取新的access token。
  • 用户信息获取:携带access token调用Ory的/userinfo端点,获取用户基本数据。
  • 登出:调用Ory的注销端点,清理本地令牌缓存,同时跳转到Ory的全局登出页面完成会话终止。

内容的提问来源于stack exchange,提问作者me.at.coding

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 06:35:01