远程页面开发

远程页面其实就是通过聆客打开一个远程的html页面,开发过程使用的技术和普通的Web应用相同,唯一需要注意的是Web页面会在移动端打开,需要考虑页面的移动端适配。

获取用户信息

如果用户在聆客中访问远程页面,远程页面应用可以通过聆客让用户自动登录,获取用户信息,登录过程如下 (注:如果远程页面应用已接入平台所在sso,打开该系统页面时,通过SSO将自动进行登录,不需再关注下面过程)

具体而言,网页授权流程分为以下几步:

  1. 引导用户进入授权页面 应用系统可以通过浏览器“user-agent”是否包含linkmessenger,判断当前页面是否在Link容器内,如果在,可以引用用户进入下面的页面进行登录

    link://cgi-bin/authorize?returnUrl=https%3A%2F%2Fco3.gz-mstc.com%3A8080%2Fsignon%2Flogin%3FreturnUrl%3Dhttps%253A%252F%252Fco3.gz-mstc.com%253A8080%252Fsso%252Findex.jsp&appid=clientid

    参数说明:

    • appid :由平台给第三方应用分配的id
    • returnUrl:授权后重定向的回调链接地址,请使用urlencode对链接进行处理,平台登录成功后,页面将跳转至 returnUrl/?login_ticket=LOGIN_TICKE&state=STATE。

      LOGIN_TICKE说明 :

    • LOGIN_TICKE作为换取当前用户登录Id的票据,每次用户授权带上的LOGIN_TICKE将不一样,TICKET只能使用一次,5分钟未被使用自动过期。

  2. 通过TICKET换取当前用户登录Id

获取LOGIN_TICKET后,调用以下接口获取当前用户Id:

- 接口地址:
    平台的SSO地址,如:https://linktest.bingocc.cc:8080/sso/v2
- 接口调用方式:
    Post(增加Header头X-Requested-With=XMLHttpRequest)
- 接口调用参数
    - openid.mode = checkid_setup
    - credential_type=login_ticket
    - openid.ex.get_oauth_access_token=y      获取接口调用的access_token
    - openid.ex.client_id:平台分配置给第三方应用Id
    - login_ticket:上一步返回的LOGIN_TICKE
- 返回结果
    - 成功    
        - mode=ok
        - identity: 用户标识
        - ex.token: 代表用户已经登录的Token
        - ex.token_expires: Token过期时间
        - ex.service_ticket: 用于RP效验用户是否登录的Token
    - 错误    
        - mode=fail
        - error:错误描述文本
  1. 获取用户身份后本地登录

获取用户身份后,建议在远程页面应用中做本地登录,以免用户下次开启时需要重新登录。

上一篇:轻应用开发 下一篇:本地网页