阿里云这个 API 的接口签名可真是够让人崩溃的。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
jimrok
V2EX    程序员

阿里云这个 API 的接口签名可真是够让人崩溃的。

  •  
  •   jimrok 2019-02-28 17:32:48 +08:00 6274 次点击
    这是一个创建于 2465 天前的主题,其中的信息可能已经有所发展或是发生改变。

    文档在这里 https://help.aliyun.com/document_detail/29475.html?spm=a2c4g.11186623.2.19.7d864ae0ZVtces

    看完了仍然是一头雾水,参考了 java 代码写了一个,调试了半天,仍然不知道哪里有问题。设计一个这么复杂的签名机制,居然没有贴一个完整的 HTTP 请求的例子,以及计算后的结果,你只能拿线上环境乱试。

    线上返回的结果就是他计算时简单的一个串,可能一些 Header 信息也没有放进去不知道,文档里没有解释。也没有提供一个测试环境让你去验证。我想要的就是有个环境可以验证签名,发送过去后,不对可以吧 server 端详细的计算日志返回来。

    15 条回复    2019-03-01 17:48:25 +08:00
    Lax
        1
    Lax  
       2019-02-28 17:56:32 +08:00
    做过一次就好了,不行就上 github 搜搜开源库,java 的轮子还是有的
    TheWalkingDead
        2
    TheWalkingDead  
       2019-02-28 17:59:01 +08:00
    和 AWS s3 鉴权 api 差不多,多测试下,这种对格式要求很严格。
    leavic
        3
    leavic  
       2019-02-28 17:59:48 +08:00
    阿里的文档还是算了吧,我都是看代码然后自己猜的。
    jalena
        4
    jalena  
       2019-02-28 18:22:47 +08:00
    来,打个脸
    https://github.com/aliyun/api-gateway-demo-sign-java

    进去一看就是文档,底下就是一个参考 demo~
    lazyfighter
        5
    lazyfighter  
       2019-02-28 18:34:22 +08:00
    都有 demo 就不说啥了
    jimrok
        6
    jimrok  
    OP
       2019-02-28 21:10:07 +08:00
    @lazyfighter demo 代码写的太烂,不能用在生产上。果然骂完就弄出来了,X-Ca-Signature-Headers 这个参数太奇葩,这么重要的信息文档里放在很不起眼的地方。
    jimrok
        7
    jimrok  
    OP
       2019-02-28 21:15:29 +08:00
    @jalena 先看的那个代码,写的太乱,嗦。一个签名的 demo 要搞一个 client 给你用。不想研究,要用 okhttp 去写,对着文档一遍遍调试,想杀这个写文档的。
    datafeng
        8
    datafeng  
       2019-02-28 22:40:02 +08:00
    那去看看微信的支付接口文档估计会更崩溃~~
    Visionhope
        9
    Visionhope  
       2019-02-28 23:25:52 +08:00 via Android
    @datafeng 确实,第一次看很难理解
    jalena
        10
    jalena  
       2019-03-01 09:55:19 +08:00
    @jimrok 我觉得没啥毛病,首先看别人的就是看个思路,你只要知道他是干啥的,完全可以自己实现撒。另外对于接口我觉得这些基础方法抽象出来也是可以的,至少你在后续维护的时候也能清楚的知道我要改什么,不至于每个代码都去搞撒
    jalena
        11
    jalena  
       2019-03-01 10:00:46 +08:00
    @jimrok 我看了这个 demo,我觉得完全没有问题,他将这个 gateway 的方法抽象为一个 client 是完全合情合理的!里面涵盖的各类抽象方法也都合理。。

    我就不知道你的程序结构应该是如何的了!
    koolob
        12
    koolob  
       2019-03-01 11:03:49 +08:00
    可以直接用阿里云提供的 SDK,只需要设置 AccessKey 信息就好了。如果只是为了使用而已的话,可以省好多事情。
    joshu
        13
    joshu  
       2019-03-01 12:03:25 +08:00 via Android
    看了国际版阿里云的文档你会更崩溃
    jimrok
        14
    jimrok  
    OP
       2019-03-01 13:23:16 +08:00
    @jalena 因为 http 的 client 我们封装了 okhttp,,我就不需要他这个结构。我需要一段签名算法的代码,结果 demo 扔过来一个 client。就好像你朝你同事要数据库的密码验证的算法,他扔给你一个用户登录模块。
    mengdodo
        15
    mengdodo  
       2019-03-01 17:48:25 +08:00
    别吵吵,用爱去感化它
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     846 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 20:34 PVG 04:34 LAX 12:34 JFK 15:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86