oneLogin.html 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <!-- <meta > 生产上有https访问的,会导致上报的referer为空,移动运营商会去校验请求referer是否进行备案-->
  8. <!-- step2: 添加meta -->
  9. <meta content="always" name="referrer">
  10. <title>H5 一键登录demo</title>
  11. <style>
  12. body {
  13. display: flex;
  14. align-items: center;
  15. justify-content: center;
  16. flex-direction: column;
  17. height: 300px;
  18. }
  19. p {
  20. font-size: 14px;
  21. }
  22. </style>
  23. <!-- 手机查看日志 -->
  24. <!-- <script src="https://cdn.bootcss.com/vConsole/3.3.0/vconsole.min.js"></script>
  25. <script>
  26. var vConsole = new VConsole();
  27. </script> -->
  28. <!-- 本机验证本身不需要jquery 库,此处使用仅为了在demo中减少代码量 -->
  29. <script src="https://apps.bdimg.com/libs/jquery/1.9.1/jquery.js"></script>
  30. <!-- stpe1: 引入JS -->
  31. <!-- 引入axios 网络请求依赖此库-->
  32. <!-- <script src="https://unpkg.com/axios/dist/axios.min.js"></script> -->
  33. <!-- 本地依赖 -->
  34. <script src="axios.min.js"></script>
  35. <!-- 引入gysdk-min.js 注意路径-->
  36. <script src="gysdk-min.js"></script>
  37. </head>
  38. <body>
  39. <h3>H5 一键登录 demo 演示</h3>
  40. <p>点击登录体验 H5 一键登录</p>
  41. <button id='test'>登录</button>
  42. <p>此处为点击登录模拟场景, 接入方可根据业务需求,进行修改</p>
  43. </body>
  44. </html>
  45. <script>
  46. const appid = "W7kPXNCmix71vGXznHuBy5"
  47. //初始化个验SDK
  48. function initGy() {
  49. GyManager.setDebugMode(true)
  50. GyManager.init({
  51. app: "芳华未来",
  52. appid: appid, timeout: 3000, onResult: function (res) {
  53. console.log("demo init ", res);
  54. if (res.success) {
  55. initResult = res;
  56. }
  57. }
  58. });
  59. }
  60. //保存初始化结果
  61. let initResult;
  62. // 可提前判断网络状态 决定是否初始化H5一键登录
  63. var nettype = GyManager.checkNetInfo();
  64. console.log("demo checkNetInfo", nettype);
  65. // 根据客户业务进行判断 网络判断返回 cellular、 wifi、 unknown
  66. if (nettype === 'wifi') {
  67. // 可选方案:
  68. // 1: 提示用户关闭wifi 进行体验
  69. // 2: 直接降级走其他验证形式
  70. console.error("demo wifi状态无法一键登录")
  71. } else {
  72. // stpe3: 初始化H5一键登录
  73. initGy()
  74. }
  75. // 模拟点击登录场景 可以在页面加载的时候判断网络状态后初始化就调用gateway方法
  76. $('#test').click(() => {
  77. // 调用H5一键登录
  78. if (!initResult) {
  79. console.error("demo gysdk初始化失败,无法登录")
  80. // 降级走其他验证方式
  81. return
  82. }
  83. //step5: 调用H5 一键登录
  84. GyManager.oneLogin({
  85. canSwithch: true,
  86. logo:"./logo.png",
  87. onTokenSuccess: function (res) {
  88. console.log("demo onTokenSuccess", res);
  89. //调用服务端校验接口
  90. },
  91. onTokenFail: function (err) {
  92. console.error("demo onTokenFail", err);
  93. }
  94. });
  95. });
  96. </script>