本人正在做使用 OneDrive 作为云端存储的应用,目前已经调试通过了 OneDrive 的授权、通过授权码调用 API 的流程,但是遇到了一个问题。
因为应用是需要用户登录自己的 OneDrive 对应用进行授权,从而允许应用上传数据到用户的 OneDrive,所以需要存储很多的授权码到服务端,并且授权码与用户信息相关联。
我大概描述一下我的目前实现:
- 用户主动触发授权的操作(单击按钮什么的),这个时候应用通过 WebView 调用我提前在服务端写好的 html 进行授权( html 仅仅是封装了一些必须填的参数 [微软需要的数据,包括后面会用到的 重定向 Url ] ),然后 html 会自动跳转微软的授权页面,授权成功之后会主动回调我配置好的 重定向 Url ,由于这个 重定向 Url 需要在 https://apps.dev.microsoft.com 进行配置,所以不能使用动态的方式(已测试过动态 Url [ url 的路径中带上自己的参数] 和带参的方式 [最后加上?uid=xxx ] ,都会在不同的地方提示 重定向 Url 与 dev 中配置的不一样)。
- 如果授权成功,会回调服务端的一个接口,在这个接口中拿到 授权码 ,因为 授权码 是在之后使用的,同时不同的用户有不同的授权码,所以需要将 授权码 与用户信息关联起来。
问题就出现在第二步的接口回调中,我暂时想不到办法将用户的信息从客户端传递到回调的接口中,也就是不能在接收到 授权码 之后判断这个授权码属于哪个用户的。
求助万能的 V 友,有什么好的解决方法吗?