j9九游会登录/ 应用平台 appstage/ / / / / 接口详解
更新时间:2025-04-23 gmt 08:00

接口详解-j9九游会登录

了解oauth2.0协议登录流程(与orgid的交互流程)

图1 demo登录流程图
  1. 登录获取code:应用a首先需要在orgid平台上进行注册,并进行相应的配置,比如,j9九游会登录首页登录url,退出地址url等,然后用户通过浏览器在orgid界面单击应用或者直接访问应用服务地址,浏览器向应用a发起登录请求,应用a接收后,会向orgid发起认证,认证的请求信息为:
    method: get,
    url:    https://orgin-dev.huawei.com/oauth2/authorize,
    param:  response_type: code,        
            client_id: 应用a的clientid(需要在orgid页面上获取)        
            scope: phone profile email(授予应用a的用户信息范围)        
            redirect_uri: https://myapp.com/login (在orgid上配置的应用a的j9九游会登录首页登录url)

    如果orgid监测到用户未登录,则会跳转到orgid的登录页,进行登录。登录成功后,orgid会返回一个带有code参数的重定向请求(重定向的地址为应用a在orgid上配置的j9九游会登录首页登录url)。重定向的url示例为:

    url: https://myapp.com/login?code=lwooqdwgqfcqqkz-kizf7zwuiyyyg8mh4gz0ee1nfk-l4rnl9v9nqjw1cw1awpbw5rfhclydi-zpa2e-qru8qbma6kin7f-hbrwrldam4knx24b0d0guxoes2eezh5ue 
  2. 通过code获取token:通过在第一步中的重定向url路径中获取code。应用a拿着code,向orgid发送一个post请求来获取token,请求信息如下:
    method:   post,
    url:      https://orgid-dev.huawei.com/oauth2/token
    formdata: grant_type: authorization_code,          
              code: 第一步中获取到的code,         
              redirect_url: https://myapp.com/login,          
              client_id: 应用a的clientid         
              client_secret: 应用a的client_secret

    获取的响应为:

    {     
        "access_token": "j2bp_wna_ejdxcqedaw2vre_xol60yegg1_zkbkzglbx0l407dkjfe9o-ioxl7dn87ngekgcxzcwlszygh9yp71qrto36r18qki6foiqyyin58o1mi8c4-0dfgcwmhii",
        "refresh_token": "pteucnloqhcrujpkuexaeqtnxo2gprja90ba9nae6l1si-d9hk-njhb3w_3rbdivh4ris_59frj1bb6ivkdkkj81nov7uintrbsois8eweh2qtfbr9dx9az6pcjdjg0-",
        "scope": "phone profile email",     
        "token_type": "bearer",     
        "expires_in": 7200
    } 
  3. 通过token获取登录的用户信息:获取token后,应用a将其作为认证凭证,向orgid发送get请求以获取用户信息,请求信息如下:
    method:     get
    url:        https://orgid-dev.huawei.com/oauth2/userinfo
    headers:         
                authorization: bearer access_token (其中access_token是第二步请求中的响应体)

    获取的响应为:

    {     
        "tenant_name": "zzxtest",     
        "role": "admin",     
        "user_id": "1008600000020011612",     
        "user_name": "hid_prsll6r9d8w784c",     
        "name": "150******53",     
        "mobile": "150******53",     
        "tenant": "919008600000119****",     
        "employee_code": "00001"
    } 

demo工程中的接口介绍

demo工程中的接口如图2所示。

图2 demo工程中的接口
  • /login接口

    本demo应用引入了thymeleaf,在配置文件中配置thymeleaf基本参数后,该接口返回为登录页的静态资源login.html,即登录页的界面。

    图3 配置thymeleaf
  • /is/login接口

    该接口为查询当前访问的用户是否登录,如果登录,则返回当前登录的用户信息,否则返回消息为空。与orgid的登录流程在本demo中进行,当其他微服务需要判断当前用户登录状态时,内部调用此接口来获取当前登录的用户信息。

  • /index接口

    demoorgidlogin登录成功后的访问地址j9九游会登录首页,同/login接口,返回为登录页的静态资源,即index.html。

  • /oauth2/tologin接口

    该接口的接口地址为orgid侧配置的回调地址,即上述oauth2.0登录流程中的:回调应用,提供授权码code。

    当用户输入账号密码登录后,orgid会携带授权码code回调此接口,该接口需要依次完成oauth2.0登录流程中的1~3步,最终拿到用户信息后,根据用户信息生成cookie,建立demo应用与用户浏览器的会话。

  • /app/logout接口

    该接口为demo应用的退出接口,当用户需要退出应用时,需完成以下两件事:

    • 需要清除自身会话,完成自身应用退出逻辑。
    • 重定向到orgid的退出页完成orgid侧的退出逻辑。
  • /callback/logout接口

    该接口为orgid的回调接口,当用户从orgid侧发起退出登录时,会通知到应用侧。此时会回调该接口,不同于/app/logout退出接口,该接口只需清理demo应用自身会话,完成自身退出登录。

相关文档

网站地图