Module: Model::App::WorkApp

Extended by:
ActiveSupport::Concern
Included in:
Wechat::WorkApp
Defined in:
app/models/wechat/model/app/work_app.rb

Instance Method Summary collapse

Instance Method Details

#apiObject



12
13
14
15
# File 'app/models/wechat/model/app/work_app.rb', line 12

def api
  return @api if defined? @api
  @api = Wechat::Api::Work.new(self)
end

#wechat_corp_oauth2(oauth2_params, account = nil) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/models/wechat/model/app/work_app.rb', line 17

def wechat_corp_oauth2(oauth2_params,  = nil)
  userid   = cookies.signed_or_encrypted[:we_userid]
  deviceid = cookies.signed_or_encrypted[:we_deviceid]
  if userid.present? && deviceid.present?
    yield userid, { 'UserId' => userid, 'DeviceId' => deviceid }
  elsif params[:code].present? && params[:state] == oauth2_params[:state]
    userinfo = wechat().getuserinfo(params[:code])
    cookies.signed_or_encrypted[:we_userid] = { value: userinfo['UserId'], expires: self.class.oauth2_cookie_duration.from_now }
    cookies.signed_or_encrypted[:we_deviceid] = { value: userinfo['DeviceId'], expires: self.class.oauth2_cookie_duration.from_now }
    yield userinfo['UserId'], userinfo
  else
    redirect_to generate_oauth2_url(oauth2_params)
  end
end