登录场景:基于WEB登录
用户打开SaaS应用登录页面(该页面由商家自行开发),点击登录按钮,重定向到实际的登录URL,该URL由云商店统一提供,由用户输入账户、密码,获得用户登录的code、tenant_id等信息。
商家的服务器端需要根据tenant_id查询联营应用信息接口同步给商家的租户client_id、client_secret信息,用于code鉴权。
具体的时序图如下:
1、 浏览器重定向至统一登录地址,具体接口形式如下:
https://macroverse.huaweicloud.com/unified-login/#/portal-login?ind=UNOP&appId={商家appId}
1、不支持google浏览器无痕模式访问;火狐浏览器如果不能正常访问,请在设置->隐私与安全->自定义,去除cookie的勾选,否则会出现2次登录输入框进行2次登录
2、如商家软件的APP端集成云商店H5统一登录页,需要在webview对象增加三行代码即可解决2次登录问题;
CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setAcceptCookie(true); cookieManager.setAcceptThirdPartyCookies(mWebView,true);
2、 登录成功后,由浏览器根据redirect_uri跳转回商家SaaS应用主页https://example.com?code={code}&tenant={tenant},并将code通过redirect_uri返回给商家;
3、 根据返回的code获取access_token与refresh_token,具体请参考联营能力开放接口的/api/v1/oauth2/token接口定义。
4、 根据/api/v1/oauth2/userinfo接口获取用户信息,完成用户登录。