第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

小程序的登錄

標簽:
小程序

交互流程

官方交互流程

小程序端

示例xfdg

  • wx.checkSession 微信端校验会话有效性,不用每次都去微信服务端请求code
  • sessionId是服务的根据code和sessionKey生成的,客户端没有的话需要重新来一遍
  • 当微信会话失效的时候,也需要重新请求code,再生成sessionId传给客户端
import { wnLogin } from "./utils/api.js";

App({
  onLaunch: function () {
    let _this = this
    wx.checkSession({
      success () {
        // 微信session有效 判断本地是否存储了服务器的sessionId
        if (!wx.getStorageSync('sessionId')) {
          // 没有code 还是需要执行重新登录操作
          console.log('wx session success but token invalid')
          _this.imLogin()
        }
      },
      fal () {
        console.log('wx session fail')
         _this.imLogin()
      }
    })
  },
  imLogin: function () {
    // 登录微信服务器
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        wnLogin(res.code).then(result => {
          // 存储本地 session_id
          console.log(result)
          if (result.code === 0) {
            wx.setStorageSync('sessionId', result.data.sessionId)
          } else {
            wx.showToast({
              title: result.msg,
              icon: 'loading'
            })
          }
        }).catch(err => {
          console.log(err)
        })
      }
    })
  },
  globalData: {
    userInfo: null
  }
})

后端

代码

namespace app\wnapi\controller;


use app\BaseController;
use app\common\model\User;

class Wn extends BaseController
{
    /**
     * 用户登录
     * @return \think\response\Json
     */
    public function login()
    {
        // 根据openid判断用户是否存在 不存在则存储
        $code = $this->request->get('code');
        $wx_info = $this->app->wn_service->getOpenId($code);
        if ($wx_info && isset($wx_info['openid'])) {
            // 存在则更新 session_id
            // 返回给前端 session_id,前端存储下来
            $user = User::where(['wn_openid' => $wx_info['openid']])->findOrEmpty();
            if ($user->isEmpty()) {
                $user->wn_openid = $wx_info['openid'];
                $user->create_time = time();
                $user->update_time = time();
            }
            $user->wn_session_id = md5($wx_info['session_key']. $wx_info['openid']);
            $user->save();
            return json([
                'code' => 0,
                'msg' => '登录成功',
                'data' => [
                    'sessionId' => $user->wn_session_id
                ],
                'time' => time()
            ]);
        } else {
            return json([
                'code' => -1,
                'msg' => $wx_info['errmsg'],
                'data' => [],
                'time' => time()
            ]);
        }
    }
}
點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消