全部
常见问题
产品动态
精选推荐

Java多商户外贸版Google登录问题修复

管理 管理 编辑 删除

修复Java多商户外贸版V1.1版本Google登录问题

替换如下代码:

5ef9d202504241721413912.png

import Vue from 'vue'

export default Vue.directive('google-signin-button', {
  bind: function(el, binding, vnode) {
    CheckComponentMethods()

    // 获取 clientId 和回调方法
    const clientId = binding.value
    const onSuccess = vnode.context.OnGoogleAuthSuccess
    const onFailure = vnode.context.OnGoogleAuthFail

    // 创建 Google 登录按钮配置
    const buttonConfig = {
      type: 'standard', // 或 'icon',取决于你的设计需求
      shape: 'rectangular', // 或 'circular'
      theme: 'outline', // 或 'filled_blue', 'filled_black'
      size: 'large', // 或 'medium', 'large'
      width: 256,
      text: 'signin_with', // 或 'sign_in_with', 'continue_with'
      logo_alignment: 'center'
    }

    // 为自定义按钮添加点击事件
    el.addEventListener('click', function() {
      // 初始化 Google 登录
      InitializeGoogleLogin(clientId, onSuccess, onFailure, buttonConfig, el)
    })

    // 检查组件方法
    function CheckComponentMethods() {
      if (!vnode.context.OnGoogleAuthSuccess) {
        throw new Error('The method OnGoogleAuthSuccess must be defined on the component')
      }

      if (!vnode.context.OnGoogleAuthFail) {
        throw new Error('The method OnGoogleAuthFail must be defined on the component')
      }
    }
  }
})

// 初始化 Google 登录
function InitializeGoogleLogin(clientId, onSuccess, onFailure, buttonConfig, parentElement) {
  // 检查是否已经存在 Google 身份服务脚本
  if (document.getElementById('google-identity-script')) {
    // 如果脚本已存在,直接初始化 Google 登录配置
    google.accounts.id.initialize({
      client_id: clientId,
      callback: handleCredentialResponse
    })

    // 渲染 Google 登录按钮到指定的父元素
    google.accounts.id.renderButton(
      parentElement,
      buttonConfig
    )

    // 允许自动登录(可选)
    google.accounts.id.prompt()
  } else {
    // 创建 Google 身份服务脚本
    const googleIdentityScript = document.createElement('script')
    googleIdentityScript.id = 'google-identity-script'
    googleIdentityScript.src = 'https://accounts.google.com/gsi/client'
    googleIdentityScript.async = true
    googleIdentityScript.defer = true
    document.head.appendChild(googleIdentityScript)

    // 脚本加载完成后初始化登录
    googleIdentityScript.onload = function() {
      // 初始化 Google 登录配置
      google.accounts.id.initialize({
        client_id: clientId,
        callback: handleCredentialResponse
      })

      // 渲染 Google 登录按钮到指定的父元素
      google.accounts.id.renderButton(
        parentElement,
        buttonConfig
      )

      // 允许自动登录(可选)
      google.accounts.id.prompt()
    }
  }

  // 处理登录回调
  function handleCredentialResponse(response) {
    try {
      // 验证 JWT 令牌(建议在后端进行验证)
      const userCredential = response.credential
      onSuccess(userCredential)
    } catch (error) {
      onFailure(error)
    }
  }
}


请登录后查看

CRMEB-何天 最后编辑于2025-04-24 17:23:13

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
434
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} 加精
{{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服