http 请求状态 失败 阿里云(请求服务器失败怎么办)
Apifox 教程:简单配置 OAuth 2.0 和直接获取访问令牌
Apifox2.5.15及以上版本已支持根据 OAuth 2.0协议规范直接获取访问令牌,无需在其它工具中生成后再粘贴过来。
Apifox支持 OAuth 2.0协议定义的五种常见授权模式,它们分别如下:
在众多授权模式中,最常见和最经典的授权模式是 Authorization Code(授权码模式)。
什么是 OAuth 2.0?
OAuth 2.0是一种授权框架,它可以让第三方应用程序在得到你的授权后,有限度地访问一些开放的个人信息。
OAuth 2.0的运行流程可以用下图表示,其中,客户端代表一方,用户为另一方,认证服务器与资源服务器统一作为一方。
在实际应用中,我们可以简化为 3步来理解:
用一条公式来简化,可以简单表示为:授权码(code)+访问令牌(Token)=开放资源。这个公式概括了整个 OAuth 2.0的主流程,即通过授权码获取访问令牌,然后利用令牌去访问开放资源。
我们将通过一个阿里云 OAuth 2.0登录的例子来进一步实践一下,并讲述如何在 Apifox中调试。
授权码模式的 OAuth2.0鉴权
1获取客户端 ID和客户端密钥
我们首先需要到 OAuth 2.0服务提供者的后台获取到客户端 ID(Client ID)和客户端密钥(Client Secret)。
在阿里云中,你需要到 RAM控制台新建一个 OAuth应用,里面的应用 ID就是客户端 ID(Client ID)。
然后在应用中,创建一个密钥,创建时显示的 AppSecretValue就是客户端密钥(Client Secret),只显示一次,记得保存好,忘记了需要重新生成。
当客户端 ID和客户端密钥有了之后,我们可以在 Apifox中先配置这两个信息。打开任一接口或目录,选择「修改文档-> Auth-> OAuth 2.0」选项。
在 Apifox中 OAuth 2.0默认选择的授权模式为 Authorization Code(授权码模式),本例就是用的这个模式,所以无需在页面配置项中进行更改。在下方找到 Client ID和 Client Secret,将从阿里云中获取到的应用 ID和密钥分别填进去即可。
2配置授权码的请求地址
根据阿里云官方文档的描述,在进行 OAuth 2.0认证时,授权码的请求地址(Auth URL)是:
将这个授权码的请求地址填写到 Auth URL里即可,这个地址我们可以把它理解为登录授权页面,在首次校验登录状态时会打开这个页面(客户端内为窗口),然后让你填写用户名和密码。
一般在手动构造登录授权页面的时候,这个授权地址的后面还需要携带一些参数,比如像这样的:
需要注意的是,正常情况下无需进行参数换行。
但是,在 Apifox中,后面的参数一般就不需要了,只要问号?前面的路径就行,因为其它必填参数已单独在其它选项中配置,当然如果你想携带一些 Query参数,你也可以加上,点击该输入框后面的图标即可添加:
3配置回调地址
回调地址(Callback URL)一般是自己的服务器的一个地址,这个地址需要配置到 OAuth 2.0服务提供者的后台,开发时一般使用本地服务器(比如: )。在阿里云中,点击「编辑基本信息」并填入回调地址即可。
我们需要“回调地址”的目的是为了获取到地址栏上的授权码(code),在上文的“步骤二”中,我们在登录页填写完用户名密码后,就会重定向到“回调地址”,并能在地址栏中获取授权码(code)。形如下面这个用手动的方式获取 code值的地址栏:
OAuth 2.0服务提供者后台里填写的回调地址是什么,我们在 Apifox中就填上对应的回调地址(Callback URL)。
需要注意的是,如果你用的是 Apifox的网页端,那么必须将 OAuth 2.0服务提供者后台的回调地址指定为 ,同样该地址也需要在 Apifox中填写,否则重定向会失败,就获取不到授权码(code)了。
4配置访问令牌的请求地址
根据阿里云官方文档的描述,使用授权码(code)向阿里云 OAuth 2.0服务申请访问令牌(Token)时,它的请求地址为:
将这个访问令牌的请求地址填写到 Access Token URL里即可。
5获取令牌与使用
最后,当客户端 ID(Client ID)、客户端密钥(Client Secret)、授权码的请求地址(Auth URL)、回调地址(Callback URL)和访问令牌的请求地址(Access Token URL)都配置完毕后,我们就可以点击「获取 Token」按钮来调试了,点击后会弹出一个授权登录框,你可以在这里填写用户名密码,或者通过手机扫码的方式来登录。
填写用户名密码后,点击登录,你会看到 Token已成功获取。
获取 Token成功后,界面上会展示 Token内容及其有效期。
有了 Token后就可以在接口中发送请求,已生成的 Token会自动附加到请求头的 Authorization中,添加至 Bearer后发送出去。
如果你要将 Token携带在 URL上,你也可以在页面的配置项中修改 Token的「添加位置」,将其选择为「Query Params」即可。
至此,我们通过“阿里云 OAuth 2.0登录”的例子,从头跑了一遍流程,最终成功获取了 Token,一般必要的操作以及配置项就是上文所述步骤的内容,其它的可用配置项请见下文。
其他配置项
在 Token返回后,Apifox会自动解析 OAuth 2.0服务返回的其它信息,比如阿里云的 OAuth 2.0服务会返回以下的字段:
在 Apifox中,会自动将这些返回的字段解析出来,你可以点击 Token后面的小眼睛查看:
如果 OAuth 2.0服务同时返回了 Access Token和 ID Token,Apifox会默认使用 Access Token。如果希望切换至 ID Token,那么可以在「使用的 Token类型」选项中切换至 ID Token。
如果 OAuth 2.0服务返回了 Refresh Token,将会出现「刷新 Token」按钮。当 Token过期了,点击「刷新 Token」按钮即可直接获取新的 Token,而不会弹出登录窗口。
OAuth 2.0服务的登录页面会记录用户的登录状态,重新获取 Token时默认会使用上一次登录的账号。若希望更换账号,则可以点击「清除 Cookies」按钮,再点击「获取 Token」。
你还可以点击「更多」选项添加更多加密设置。如果配置留空,它们会自动生成。
以下是各个配置项的解释:
注意事项
Apifox现支持根据 OAuth 2.0标准协议规范获取 Token,这意味着只有当第三方平台的 OAuth 2.0认证也遵循标准的协议规范时,才能成功获取 Token,否则会失败。
国内许多平台提供的 OAuth 2.0认证流程并未完全遵循协议规范,它们更注重只要能通过代码获取到 Token就行,但是获取到 Token之前需要践行的配置规范往往自成一派,所以你在 Apifox中调试的时候会遇到报错。
针对这种情况,我们推荐你用手动的方式来构造登录页面,也就是配置「授权码的请求地址」,当请求地址在网页中成功重定向并获得授权码(code)后,再使用 Apifox来发送获取 Token的请求,这种方法虽然稍显繁琐,但能有效解决问题。具体操作方法,可参考这篇文章《最佳实践|如何使用 Apifox调试 OAuth 2.0鉴权的接口》,该文是在 Apifox尚未直接支持 OAuth 2.0调试功能时编写的。
OAuth 2.0鉴权流程归纳如下:
额外配置项包括 Scope、State、Credentials等。注意,Apifox支持标准 OAuth 2.0协议规范,若第三方平台 OAuth 2.0认证未遵循规范,可能无法成功获取 Token。建议如遇问题,手动构造登录页面后再使用 Apifox发送获取 Token的请求。
更多关于 OAuth 2.0的知识可以查看:
阿里云数据库redis怎么配置
根据下面步骤创建适应业务需求的云数据库Redis版实例。
使用下列方法中任意一种打开购买页:
打开云数据库Redis版产品首页,单击立即购买。
说明如果尚未登录阿里云账号,单击立即购买后需要先使用阿里云账号和密码登录。
登录Redis管理控制台,单击右上角的创建实例。
设置以下参数。
选择密码设置方式。
立即设置:在下方的输入密码区域设置密码。
稍后设置:创建实例后再修改密码。
设置实例名称、购买数量,如果创建包年包月实例,还需设置时长。
在确认订单页,阅读《云数据库KVStore版服务协议》,确认接受后在服务协议前的选框中单击勾选。
单击去开通。
因为这方面内容较多,这里也写不开那么多内容,所以你可以留言或到我的博客上搜索相关内容,老魏有写过教程,还不止一篇,都挺详细的内容,可以帮助你入门。