接口详解-j9九游会登录
了解oauth2.0协议登录流程(与orgid的交互流程)
- 登录获取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
- 通过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 } - 通过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所示。
- /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应用自身会话,完成自身退出登录。
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨