云服务器内容精选

  • 使用自定义错误码 自定义错误码创建完成后,可在脚本中使用。在脚本中,调用抛出错误信息的error函数I18nError('ErrorCodeName','变量1','变量2')。该函数中,输入参数为错误码名称"t__testErrorCode"和错误码信息中所携带的变量("val1"和"val2")。 创建脚本。 参考创建空白AstroZero脚本中操作,创建一个空白脚本。 在脚本编辑器中,输入如下代码。 // test custom error func , get diff language error by user lang import * as error from 'error'; export class TestDemo { @action.method({ label: 'test', description: 'error code', input: 'No input', output: 'No output' }) public test() { //使用I18nError函数设定错误码和错误码信息携带变量 throw new error.I18nError('t__testErrorCode', ["val1", "val2"]); } } 其中,“t__testErrorCode”为自定义错误码名称,请根据实际情况配置。 单击,保存脚本后,单击,启用脚本。 按照定义API接口中操作,绑定上述开发的脚本,进行测试。 图3 自定义错误信息测试
  • 自定义OAuth2授权码模式接入鉴权 前面介绍了第三方系统在调用AstroZero业务接口前,如何配置接入鉴权。鉴权通过后,才能实现调用AstroZero业务接口。在AstroZero中开发的应用,也可以自定义OAuth2授权码模式接入鉴权。当应用配置鉴权后,只有通过鉴权的第三方系统才可以访问应用。 参考授权码模式接入认证中的4~6,获取鉴权ID“client_id”和鉴权密钥“client_secret”。 在应用开发页面,通过自定义接口,给第三方接入调用,用于第三方系统获取授权码code。 应用调用脚本API,判断第三方客户端的鉴权ID“client_id”和重定向地址“redirect_url”是否和注册接入鉴权时匹配。 如果匹配,则由AstroZero应用自定义接口,实现登录跳转和授权跳转。在授权完成后,再调用脚本API获取授权码code,并将需要展示给第三方的授权用户信息通过该API传给AstroZero,AstroZero会返回一个code。最后,应用重定向到“redirect_url”,并携带code。 判断第三方客户端的鉴权ID“client_id”和重定向地址“redirect_url”是否和注册接入鉴权时匹配的API样例如下: // Here's your code. import * as oauth from 'oauth' let handle = oauth.getAuthorizeHandle() let clientDatas: oauth.clientDataFromApp = { redirect_uri: "http://10.26.30.68:14000/appauth/code", client_id: "bff4398905ee4a918722debec98b594c", } let pass = handle.checkURL(clientDatas) console.log(pass) //true if (pass){ //判断是否登录,做登录跳转 //判断是否授权,做授权跳转 } 获取授权码code的脚本API样例如下: // Here's your code. import * as oauth from 'oauth' let handle = oauth.getAuthorizeHandle() //前面步骤已经走完 let clientDatas: oauth.clientDataFromApp = { redirect_uri: "http://10.26.30.68:14000/appauth/code", client_id: "bff4398905ee4a918722debec98b594c", } let userInfo = { "name": "jack", "phone": "1256287222", "email": "example.com" } let code = handle.getAuthCode(clientDatas, userInfo) console.log(code) //WEUcqXbeQDKUHxcn8til3Q 第三方系统接收到该请求,并解析出code后,在后端访问接口获取access_token,步骤和8一致。 第三方系统在获取到access_token后,使用该凭证访问平台“https:// 域名 /u-route/baas/oauth/v1.0/third/userinfo”接口(该接口和10中的接口不同),来获取授权用户的信息。 响应示例如下: { "resCode": "0", "resMsg": "成功", "result": { "email": "example.com", "name": "jack", "phone": "1256287222" } }
  • 操作场景 在AstroZero中,可通过配置OAuth管理第三方接入鉴权。AstroZero采用OAuth 2.0协议,进行接入认证。第三方系统在调用AstroZero业务接口前,需要在AstroZero上进行鉴权注册,获取接入客户端ID、密钥等鉴权信息,才能实现调用AstroZero业务接口。 AstroZero提供了“客户端模式”和“授权码模式”两种授权模式,进行OAuth鉴权。 客户端模式 通过该模式获取的access-token,用于在调用API接口时进行鉴权,使用时需在请求消息头上设置“access-token”。 图1 客户端模式 授权码模式 通过该模式获取的access-token,只能用于在获取用户信息时进行鉴权,使用时需在请求消息头上设置“Authorization”。 图2 授权码模式
  • 如何使用自定义错误码 自定义错误码创建完成后,可在脚本中使用。在脚本中,调用抛出错误信息的error函数I18nError('ErrorCodeName','变量1','变量2')。该函数中,输入参数为错误码名称"t__testErrorCode"和错误码信息中所携带的变量("val1"和"val2")。 创建脚本。 在应用设计器中,单击左侧导航栏中的“逻辑”。 单击脚本后的,进入新增脚本页面。 设置脚本的名称,模板选择“空脚本”,单击“添加”。 在脚本编辑器中,输入如下代码。 // test custom error func , get diff language error by user lang import * as error from 'error'; export class TestDemo { @action.method({ label: 'test', description: 'error code', input: 'No input', output: 'No output' }) public test() { //使用I18nError函数设定错误码和错误码信息携带变量 throw new error.I18nError('t__testErrorCode', ["val1", "val2"]); } } 其中,“t__testErrorCode”为自定义错误码名称,请根据实际情况配置。 单击,保存脚本后,单击,启用脚本。 按照定义API接口中操作,绑定上述开发的脚本,进行测试。 图3 自定义错误信息测试