after_authenticate

in plugin.rb [17:46]


  def after_authenticate(auth_token)
    result = Auth::Result.new

    
    data = auth_token[:info]
    name = data["first_name"]
    gl_uid = auth_token["uid"]
    email = data['email']

    
    current_info = ::PluginStore.get("gl", "gl_uid_#{gl_uid}")

    
    unless current_info
      existing_user = User.joins(:user_emails).find_by(user_emails: { email: email })
      if existing_user
        ::PluginStore.set("gl", "gl_uid_#{data[:gl_uid]}", {user_id: existing_user.id })
        result.user = existing_user
      end
    else
      result.user = User.where(id: current_info[:user_id]).first
    end

    result.name  ||= name
    result.email ||= email
    result.extra_data = { gl_uid: gl_uid }

    result
  end