
一定要认真地看下我的前提,一定要认真地看下我的前提,一定要认真地看下我的前提!!!
前提:
url 不允许带有 query,如果使用 domain/auth/id_123 这种回调格式可行,但需要在第三方的后台去一个个填写地址,这显然不能实现Session问题:如当前的用户 A 需要请求第三方授权,获取第三方授权后返回的 token 该如何确定是 A 发出的请求授权?
1 fancy111 2020 年 4 月 24 日 有 token 了还需要前提? 自己写算法,把 A 的特征写进去,生成 token |
2 index90 2020 年 4 月 24 日 token 有签名的啊,根据数字签名验证是不是 A 发出的。 |
3 chmaple 2020 年 4 月 24 日 去了解一下 Oauth2 的机制吧,ticket 的作用就是你这个。 |
4 b821025551b 2020 年 4 月 24 日 主要取决于这个授权流程是怎样的; 1 、用户主动请求授权,有 UI 操作的,那么授权完成后应该回到你们自己的页面并带上 token,这时候前端拿着 token 和你们的 token 去和你们的后端交换数据; 2 、如果是静默授权,回调地址是你们服务器,这时候第三方应该会给出除 token 外其它参数,具体看他们文档。 |
5 DoUSeeMe OP |
6 DoUSeeMe OP @b821025551b 第三方授权不需要我传任何值给他,除了 return url,用户在完成第三方授权后会 POST 回调 return url 并传值。所以我只要给授权 url 赋值回调地址,在任何地方打开去授权都时可以的,问题是在于授权后如何判断 POST 回来的 token (第三方返回的 tken 不会有任何标记) 是这个用户发出的。 也就是说发出时不允许有任何标记,返回时不会有任何标记,如果有 Session 那么问题就简单了,但是目前的情况不允许使用 Session |
7 b821025551b 2020 年 4 月 24 日 @DoUSeeMe #6 按你的描述是无解的,不过我觉得作为一个三方平台不会搞成这样,有公开文档么,闲着无聊看看。 |
8 telami 2020 年 4 月 24 日 跟楼上 不需要这么隐晦,第三方授权如果是登录的话,无非微信、支付宝这些登录啥的,可以发出来看看,这些都做过的 |
9 DoUSeeMe OP @b821025551b paypal 就是了。。 |
10 DoUSeeMe OP |
11 KuroNekoFan 2020 年 4 月 24 日 oauth 啊 |
12 DoUSeeMe OP @KuroNekoFan 啊啊啊~看#6 |
13 b821025551b 2020 年 4 月 24 日 @DoUSeeMe #10 这不是有个 redirect_uri 么。。。The URI of the page to which PayPal will redirect the merchant after they have granted you permission to process transactions on their behalf |
14 blessyou 2020 年 4 月 24 日 第三方授权登录没那么麻烦。 1. 用户点击授权登录按钮, 跳转到第三方。 2. 第三方判断用户授权, 给一个只能使用一次的 code 并且拼接到 return_uri 的 querystring 。 3. 前端 return_uri 页面 读取 querystring 上的 code 参数值 请求后端服务 api 。 4. 后端拿前端传来的 code 获取第三方授权信息, 后端拿你请求带上的 Token 凭证获取信息。 5. 后端判断 是否拿到了授权信息,拿到了授权判断是否绑定过,没绑定,就绑定成功。其余情况都是绑定失败。 基本就是这个逻辑吧。 |
15 huijiewei 2020 年 4 月 24 日 第三方调用是不可能不给带 query 的,你的前提条件不存在 你发出来文档,我看看哪个第三方 API 这么牛逼 |
16 oott123 2020 年 4 月 24 日 via Android 存 sessionStorage 里,后端不读,你读出来一起发给后端 |
18 DoUSeeMe OP @b821025551b #13 redirect_uri 不许带 query 啊啊啊啊~~~ |
20 mxT52CRuqR6o5 2020 年 4 月 24 日 via Android @DoUSeeMe 是文档里说不许带还是你测试下来不行?如果是后者大概率是你用的有问题 |
21 DoUSeeMe OP @mxT52CRuqR6o5 文档没说不许带,不过我就算是只加了个 “?” 在 url 后面,PayPal 就会报错 redirect_uri 格式无效 |
23 lewinlan 2020 年 4 月 25 日 via Android 不许带 query,不用问号不就得了? 用斜杠划分 token 呗 |
24 index90 2020 年 4 月 25 日 所以用第三方登录的时候,从第三方鉴权回来后,要么自动给你创建一个以第三方账号 id 作为用户 id 的本地账号。要么走注册流程,要求用户输入邮箱等信息。要么用户提前在配置页绑定好第三方账号。 |
25 blessyou 2020 年 4 月 25 日 @DoUSeeMe #21 .... 你可以去一下我的网站的第三方登录按钮的信息,我看了 PayPal 的文档 和 Google Github 的一模一样。你文档没看懂而已。https://happysooner.com/login-and-register |
26 b821025551b 2020 年 4 月 26 日 @DoUSeeMe #21 redirect_uri 是你提供给第三方回调的地址,当然不需要你去加 query 并且不可提供 query 啊,query 内容是第三方返回给你的。。。 |
28 NoKey 2020 年 4 月 26 日 马一个,围观 |