文档中心

远程Web页面登录

如果用户在Link中访问服务号的第三方网页,服务号开发者可以通过此接口获取当前用户登录Id。通过登录Id,第三方应用可实现对用户的身份鉴权,登录过程如下
(注:如果第三方应用已接入平台所在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:错误描述文本