APPCUBE-如何开放API接口:自定义OAuth2授权码模式接入鉴权

时间:2023-11-01 16:19:13

自定义OAuth2授权码模式接入鉴权

前面介绍的是第三方系统访问AppCube时,如何配置接入鉴权,通过鉴权认证的第三方系统才可访问AppCube。

在AppCube开发的应用也可自定义OAuth2授权码模式接入鉴权,当应用配置鉴权后,只有通过鉴权的第三方系统才可访问应用。

  1. 参考1~4获取鉴权ID“client_id”和鉴权密钥“client_secret”。
  2. 在应用开发界面,开发者通过自定义接口,给第三方接入调用,用于第三方系统获取授权码code。
  3. 平台应用调用脚本API,判断第三方客户端的鉴权ID“client_id”和重定向地址“redirect_url是否和注册接入鉴权时匹配。如果匹配,则由平台应用自定义接口,实现登入跳转和授权跳转。在授权完成后,再调用脚本API获取授权码code,并将需要展示给第三方的授权用户信息通过该API传给AppCube,AppCube会返回一个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) //trueif (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": "dsfsdf.com"} let code = handle.getAuthCode(clientDatas, userInfo)console.log(code) //WEUcqXbeQDKUHxcn8til3Q

  1. 第三方系统接收到该请求,并解析出code后,在自己的后端访问AppCube接口获取access_token,其步骤和6一致。
  2. 第三方系统在获取到access_token后,用该凭证访问平台“https://AppCube域名/u-route/baas/oauth/v1.0/third/userinfo”接口(注意,该接口和8中的接口不同),来获取授权用户的信息。

    响应如下:

    {    "resCode": "0",    "resMsg": "成功",    "result": {        "email": "dsfsdf.com",        "name": "jack",        "phone": "1256287222"    }}

support.huaweicloud.com/usermanual-appcube/appcube_05_0644.html