获取用户信息
- wx.getUserInfo({
- withCredentials: true,
- success: function(res) {
- var nickName = res.userInfo.nickName;
- var avatarUrl = res.userInfo.avatarUrl;
- var gender = res.userInfo.gender;
- wx.login({
- success: function(res) {
- if (res.code) {
- var rsaData = _this.rsaData({
- code: res.code,
- wx_appid: _this.globalData.appId,
- nickName: nickName,
- gender: gender,
- avatarUrl: avatarUrl
- }) wx.request({
- url: _this.globalData.domain + "Index/login",
- data: {
- encrypt_data: rsaData
- },
- method: "POST",
- header: {
- 'content - type': 'application / x - www - form - urlencoded'
- },
- success: function(res) {
- const user_id = res.data.data.user_id;
- var openid = res.data.data.openid;
- wx.setStorage({
- key: 'user_id',
- data: user_id,
- }) wx.setStorage({
- key: 'openid',
- data: openid,
- })
- // 获取会员信息
- var rsaData = _this.rsaData({
- user_id: user_id
- }) wx.request({
- url: _this.globalData.domain + "user/get_user",
- data: {
- encrypt_data: rsaData,
- token: wx.getStorageSync('token')
- },
- header: {
- 'content - type': 'application / x - www - form - urlencoded'
- },
- method: "POST",
- success: function(res) {},
- })
- },
- })
- }
- }
- })
- },
- fail: function(res) {
- var that = this;
- wx.openSetting({
- success(res) {
- if (!res.authSetting['scope.userInfo'] || !res.authSetting["scope.userLocation"]) {
- wx.authorize({
- scope: 'scope.userInfo',
- success(res) {
- // 失败之后再次登入
- wx.getUserInfo({
- withCredentials: true,
- success: function(res) {
- var nickName = res.userInfo.nickName;
- var avatarUrl = res.userInfo.avatarUrl;
- var gender = res.userInfo.gender;
- wx.login({
- success: function(res) {
- if (res.code) {
- var rsaData = _this.rsaData({
- code: res.code,
- wx_appid: _this.globalData.appId,
- nickName: nickName,
- gender: gender,
- avatarUrl: avatarUrl
- }) wx.request({
- url: _this.globalData.domain + "Index/login",
- data: {
- encrypt_data: rsaData
- },
- method: "POST",
- header: {
- 'content - type': 'application / x - www - form - urlencoded'
- },
- success: function(res) {
- const user_id = res.data.data.user_id;
- var openid = res.data.data.openid;
- wx.setStorage({
- key: 'user_id',
- data: user_id,
- }) wx.setStorage({
- key: 'openid',
- data: openid,
- })
- // 获取会员信息
- var rsaData = _this.rsaData({
- user_id: user_id
- }) wx.request({
- url: _this.globalData.domain + "user/get_user",
- data: {
- encrypt_data: rsaData,
- token: wx.getStorageSync('token')
- },
- header: {
- 'content - type': 'application / x - www - form - urlencoded'
- },
- method: "POST",
- success: function(res) {},
- })
- },
- })
- }
- }
- })
- },
- })
- // 失败之后再次登入
- },
- fail: (res) = >{
- /*
- * 点击取消之后再次获取 user_id 和 openid
- */
- wx.showModal({
- title: '警告',
- content: '您点击了拒绝授权, 将无法正常使用 * ***** 的功能体验, 请 10 分钟后再次点击授权, 或者删除小程序重新进入',
- success: function(res) {
- if (res.cancel) {
- wx.openSetting({
- success: (res) = >{
- // 失败之后再次登入
- wx.getUserInfo({
- withCredentials: true,
- success: function(res) {
- var nickName = res.userInfo.nickName;
- var avatarUrl = res.userInfo.avatarUrl;
- var gender = res.userInfo.gender;
- wx.login({
- success: function(res) {
- if (res.code) {
- var rsaData = _this.rsaData({
- code: res.code,
- wx_appid: _this.globalData.appId,
- nickName: nickName,
- gender: gender,
- avatarUrl: avatarUrl
- }) wx.request({
- url: _this.globalData.domain + "Index/login",
- data: {
- encrypt_data: rsaData
- },
- method: "POST",
- header: {
- 'content - type': 'application / x - www - form - urlencoded'
- },
- success: function(res) {
- const user_id = res.data.data.user_id;
- var openid = res.data.data.openid;
- wx.setStorage({
- key: 'user_id',
- data: user_id,
- }) wx.setStorage({
- key: 'openid',
- data: openid,
- })
- // 获取会员信息
- var rsaData = _this.rsaData({
- user_id: user_id
- }) wx.request({
- url: _this.globalData.domain + "user/get_user",
- data: {
- encrypt_data: rsaData,
- token: wx.getStorageSync('token')
- },
- header: {
- 'content - type': 'application / x - www - form - urlencoded'
- },
- method: "POST",
- success: function(res) {},
- })
- },
- })
- }
- }
- })
- },
- })
- // 失败之后再次登入
- }
- })
- }
- },
- })
- }
- })
- }
- }
- })
- }
- })
方法可能有点繁琐, 有不足的地方还请多指教
来源: http://www.bubuko.com/infodetail-2559233.html