Class: Wechat::ProgramUsersController
- Inherits:
-
BaseController
- Object
- BaseController
- BaseController
- Wechat::ProgramUsersController
- Defined in:
- app/controllers/wechat/program_users_controller.rb
Instance Method Summary collapse
Instance Method Details
#create ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'app/controllers/wechat/program_users_controller.rb', line 8 def create info = @app.api.jscode2session(session_params[:code]) @program_user = ProgramUser.create_or_find_by!(uid: info['openid']) @program_user.appid = params[:appid] @program_user.unionid = info['unionid'] auth_token = @program_user.auth_token(info['session_key']) headers['Auth-Token'] = auth_token.token render json: { auth_token: auth_token.token, account: @program_user.account, user: @program_user.user } end |
#info ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'app/controllers/wechat/program_users_controller.rb', line 19 def info @program_user.name = userinfo_params[:nickName] @program_user.avatar_url = userinfo_params[:avatarUrl] @program_user.extra = { gender: userinfo_params[:gender], language: userinfo_params[:language], city: userinfo_params[:city], province: userinfo_params[:province], country: userinfo_params[:country] } @program_user.save render json: { program_user: @program_user.as_json(only: [:id, :identity, :name, :avatar_url]) } end |
#mobile ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'app/controllers/wechat/program_users_controller.rb', line 34 def mobile session_key = .session_key phone_number = @program_user.get_phone_number(params[:encryptedData], params[:iv], session_key) if phone_number @program_user.identity = phone_number @account = @program_user.account || @program_user.build_account(type: 'Auth::MobileAccount') @account.confirmed = true @account.user || @account.build_user @account.user.assign_attributes name: @program_user.name, invited_code: params[:invited_code] @program_user.class.transaction do @program_user.save! @account.save! end render json: { program_user: @program_user.as_json(only: [:id, :identity]), user: @program_user.user } else .destroy # 触发重新授权逻辑 render :mobile_err, locals: { model: @program_user }, status: :unprocessable_entity end end |