ios应用在企业内部分发遇到到问题(OAuth2.0授权码模式)

问题

最近遇到在企业内部分发iOS软件的时候,plist文件和ipa文件都不能下载安装的问题。安装苹果的官方文档:《通过网页服务器分发企业内部应用》。搭建了让企业内部员工下载的iOS安装包的服务。但最近给其中的静态资源文件服务器加上了需要用户输入用户名和密码的才能下载的文件的强验证,这直接导致plist文件和ipa不能下载了。

原因

通过抓包发现,用户点击下载的时候,即点击如下代码的时候:

<a href="itms-services://?action=download-manifest&url=https://example.com/manifest.plist">Install App</a>

itms-services协议想要下载plist文件的Get请求,没有携带用户登录的cookie,导致下载失败。

参考解决方案

根据《How to secure iOS enterprise distribution using oauth on a public facing website? 》这个帖子的思路,就是把请求下载plist文件和请求下载ipa文件的两个Get请求,都做成独立的服务,具体过程如下:

临时授权码下载ipa文件

总结

itms-services下载问题,应该用OAuth2的方案解决。具体应该看一看阮一峰关于OAuth2.0的几篇文章:

最好使用OAuth2.0的授权码模式解决这个。OAuth2.0流程图如下: OAuth2.0

授权码模式,只在前端暴露一次OAuth2.0授权码,后台通过前端获得的授权码,用来获得访问令牌,这样就保证访问令牌永远只在后台了。下次用户在请求,我们根据用户,就可以从数据库中查询出访问令牌,通过访问令牌,自己对第三方资源服务器进行调用了。

网络上面另外一张关于授权码模式流程图,这张图更加简洁: OAuth2.0授权码模式

参考

转载于:https://my.oschina.net/fxtxz2/blog/3069626

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值