YULIN Typecho主题,Arcgis 无标签 2023年09月28日 04:28:00 2271 Kotlin Android配置对接OAuth2.0登录(AppAuth) 最近在编写Android项目对接OAuth2.0登录的时候犯了难,网上搜索了一下Kotlin的OAuth库只有AppAuth一个。由于没有系统学习安卓,在对接过程中遇到了很多问题。 #### 一、页面跳转问题 有3中方法跳转到APP: 1. 包名跳转,使用包名直接打开APP(不支持接收参数) 2. Deep Link 3. App Links(Android 8以上版本支持) | 差别 | Deep Links | App Links| | ------------ | ------------ | ------------ | | 起效时间 | 立刻起效 |首次安装后几十秒后(需要链接网络) | | 提示用户 |提示(用户一旦勾选记住选择,会造成以后都无法唤醒App) |不需要用户选择 | | 系统要求 |无要求 |Android 6.0 及以上版本| | scheme问题 | 如果以 htttp/https 开头,部分手机或浏览器会当作链接打开网页| 只允许使用 http/https 或 同时使用 | | 域名注册 | 不需要域名| 需要梯子去注册域名,并在域名内部准备验证文件 assetlinks.json | 如果你是公网项目,那么推荐使用App Links方式,当跳转app打开链接时,如果手机上没有安装APP,那么浏览器会自动跳转到真实的URL目录,你可以在这个页面上编写推荐下载APP的页面。 如果是Deep Links 想要实现未安装跳转APP下载页面的话,通常使用在跳转页面设置一个settimeout来实现延迟跳转,如果超过1秒没有跳转,则视为未安装APP。 因为我们项目属于内网项目,内网的域名一直无法通过验证,就导致一直不能正常跳转。经过研究还是选择的 Deep Links方式。 看了一下其实百度、高德、腾讯地图的API接口也都是Deep Links的方式去实现的。 Deep Links页面跳转AndroidManifest.xml配置例子: ```xml //自定义路径 ``` 如上配置,访问slofgisapp://gis.slof.com/m/open 即可自动跳转打开APP 二、AppAuth授权服务器配置 ![](https://www.mqllin.cn/usr/uploads/2023/09/2033558469.png) 根据官网文档(https://curity.io/resources/learn/kotlin-android-appauth/#appauth-integration) 描述,我们需要在build.gradle(module:app)中配置认证授权回调scheme。 注意1:这里的配置与AndroidManifest.xml并无关系,例如本项目OAuth2.0授权服务器为本客户端Client配置的授权回调地址redirectUri是slofgis://gis.slof.com/auth/login ,那么此处appAuthRedirectScheme 应该填写slofgis。 注意2:用于AppAuth跳转URL不需要也不能在AndroidManifest.xml中再单独配置,不然会出现回调弹窗选择APP的问题。搞了好久? 分享到QQ好友 Last Arcgis删除几何会置空关联属性表的关联字段relationship featuretable Next postgreSQL设置自增ID