JS授权
(function(){
var origin_url = location.href;
var oauth_url = 'https://vx.mcilife.com/weixin/api/oauth/?callback='; var $_GET = (function(){
var url = window.document.location.href.toString();
var u = url.split("?");
if(typeof(u[1]) == "string"){
u = u[1].split("&");
var get = {};
for(var i in u){
var j = u[i].split("=");
get[j[0]] = j[1];
}
return get;
} else {
return {};
}
})();
//localStroage
var storage = {
read:function(name){
return localStorage.getItem(name);
},
write:function(name,value){
localStorage.setItem(name, String(value));
},
rm:function(name){
localStorage.removeItem(name);
},
clear:function(){
localStorage.clear();
}
}
//鐢ㄦ埛
var user = {
login:function(){ if(storage.read('token') === null && !$_GET['token']){
//token鍙傛暟銆佸瓨鍌ㄩ兘涓嶅瓨鍦� 鎺堟潈
user.oauth();
}else if($_GET['token'] && storage.read('token') === null){
//token瀛樺湪銆佸瓨鍌ㄤ笉瀛樺湪 鍐欏叆瀛樺偍 璺宠浆
storage.write('token',$_GET['token']);
user.setInfo();//鑾峰彇鍒皌oken涔嬪悗鏇存柊鐢ㄦ埛淇℃伅
location.href = origin_url;
}else if(storage.read('token') !== null){ }
},
oauth:function(){
var url = encodeURIComponent(origin_url);
location.href= oauth_url + url;
},
setInfo:function(){
if(storage.read('openid')
&& storage.read('unionid')
&& storage.read('nickname')
&& storage.read('headimgurl')
&& storage.read('isSubscribe')) return false; var isApp = getQueryString("isApp");
if(isApp=="10000"||isApp=="10001"){ }else if(isApp=="20000"){ $.ajax({
url:'https://vx.mcilife.com/weixin/api/getinfo/?token='+storage.read('token'),
type:'get',
async:false,
dataType:'json',
success:function(data){
if(data.code == 0){ if('openid' in data.data) storage.write('openid',data.data.openid);
if('unionid' in data.data) storage.write('unionid',data.data.unionid);
if('nickname' in data.data) storage.write('nickname',data.data.nickname);
if('headimgurl' in data.data) storage.write('headimgurl',data.data.headimgurl);
if('isSubscribe' in data.data) storage.write('isSubscribe',data.data.isSubscribe); }else{
user.oauth();//鑾峰彇淇℃伅澶辫触锛岄噸鏂版巿鏉�
}
}
})
}
}
}; if(isApp=="20000"){
user.login();
} //授权成功
var shareimg = 'http://gcw.mcilife.com/Square/image/mc.jpg';//分享的图片
$.ajax({
url : "http://vx.mcilife.com/weixin/jssdk/share/",//分享接口地址
type : 'post',
data:{url:location.href},
cache: false,
dataType : 'json',
success : function(data) {
console.log(data);
wx.config( {
appId : data.data.appId,// 必填,公众号的唯一标识
timestamp : data.data.timestamp,// 必填,生成签名的时间戳
nonceStr : data.data.nonceStr,// 必填,生成签名的随机串
signature : data.data.signature,// 必填,签名,见附录1
jsApiList : [ 'onMenuShareTimeline', 'onMenuShareAppMessage', 'showOptionMenu' ,'onMenuShareQQ' ,'onMenuShareWeibo' ]
// 必填,需要使用的JS接口列表,所有JS接口列表见附录2
}); wx.ready(function() {
wx.showOptionMenu();//打开分享按钮 //分享到朋友圈
wx.onMenuShareTimeline( {
title : "微信朋友圈:山屿海广场舞活动",// 分享标题
desc: '活动快乐,广场舞......快来参加!!', //描述
link : window.location.href,// 分享链接
imgUrl : shareimg,// 分享图标
success : function(data) { $.ajax({
url: 'http://'+setIp+':8080/mcilife-inter/gcw/insertUserVoteNum',
type:'post',
dataType:'json',
cache: false,
data:{
userId:userId,
num:2,
isTime:0
},
success: function(data) {
},
error: function () { }
}) },
cancel : function() { }
}); //分享到朋友
wx.onMenuShareAppMessage( {
title : '微信好友:山屿海广场舞活动',
desc : '活动快乐,广场舞......快来参加!!',
link : window.location.href,
imgUrl : shareimg,
success : function(data) {// 用户确认分享后执行的回调函数
$.ajax({
url: 'http://'+setIp+':8080/mcilife-inter/gcw/insertUserVoteNum',
type:'post',
dataType:'json',
cache: false,
data:{
userId:userId,
num:2,
isTime:0
},
success: function(data) {
},
error: function () { }
})
},cancel : function() {}
}); wx.onMenuShareQQ({
title: 'QQ:山屿海广场舞活动',
desc: '活动快乐,广场舞......快来参加!!',
link:window.location.href,
imgUrl: shareimg,
success: function () {
$.ajax({
url: 'http://'+setIp+':8080/mcilife-inter/gcw/insertUserVoteNum',
type:'post',
dataType:'json',
cache: false,
data:{
userId:userId,
num:2,
isTime:0
},
success: function(data) {
},
error: function () { }
})
},
cancel: function () { }
}); wx.onMenuShareWeibo({
title: '微博:山屿海广场舞活动',
desc: '活动快乐,广场舞......快来参加!!',
link: window.location.href,
imgUrl: shareimg,
success: function () {
$.ajax({
url: 'http://'+setIp+':8080/mcilife-inter/gcw/insertUserVoteNum',
type:'post',
dataType:'json',
cache: false,
data:{
userId:userId,
num:2,
isTime:0
},
success: function(data) {
},
error: function () { }
})
},
cancel: function () { }
});
})
}
}) })()
JS授权的更多相关文章
- 浏览器通知js授权
// 获得权限 Notification.requestPermission(); // 点击按钮 document.querySelector('#button').addEventListener ...
- [转]passport.js学习笔记
概述 passport.js是Nodejs中的一个做登录验证的中间件,极其灵活和模块化,并且可与Express.Sails等Web框架无缝集成.Passport功能单一,即只能做登录验证,但非常强大, ...
- 如何系统地学习Node.js?
转载自知乎:http://www.zhihu.com/question/21567720 ------------------------------------------------------- ...
- 微信小程序button授权页面,用户拒绝后仍可再次授权
微信小程序授权页面,进入小程序如果没授权跳转到授权页面,授权后跳转到首页,如果用户点拒绝下次进入小程序还是能跳转到授权页面,授权页面如下 app.js 中的 onLaunch或onShow中加如下代 ...
- 【分享】2017 开源中国新增开源项目排行榜 TOP 100
2017 年开源中国社区新增开源项目排行榜 TOP 100 新鲜出炉! 这份榜单根据 2017 年开源中国社区新收录的开源项目的关注度和活跃度整理而来,这份最受关注的 100 款开源项目榜单在一定程度 ...
- 升讯威微信营销系统开发实践:(4)源代码结构说明 与 安装部署说明( 完整开源于 Github)
GitHub:https://github.com/iccb1013/Sheng.WeixinConstruction因为个人精力时间有限,不会再对现有代码进行更新维护,不过微信接口比较稳定,经测试至 ...
- AngularJS官网seed目录结构
1.AngularJS官网seed目录结构 css/ img/ js/ app.js controllers.js directives.js filters.js services.js lib/ ...
- 2016 年度开源中国新增开源软件排行榜 TOP 100
2016 年度开源中国新增开源软件排行榜 TOP 100 2016 年度开源中国新增开源软件排行榜 TOP 100 新鲜出炉!本榜单根据 2016 年开源中国新收录的 3030 款软件的关注度和活跃度 ...
- 微信JS SDK配置授权,实现分享接口
微信开放的JS-SDK面向网页开发者提供了基于微信内的网页开发工具包,最直接的好处就是我们可以使用微信分享.扫一扫.卡券.支付等微信特有的能力.7月份的时候,因为这个分享的证书获取问题深深的栽了一坑, ...
随机推荐
- Java-Runoob-高级教程-实例-字符串:14. Java 实例 - 连接字符串
ylbtech-Java-Runoob-高级教程-实例-字符串:14. Java 实例 - 连接字符串 1.返回顶部 1. Java 实例 - 连接字符串 Java 实例 以下实例演示了通过 &qu ...
- 3 Java对象的内存布局以及对象的访问定位
先来看看Java对象在内存中的布局 一 Java对象的内存布局 在HotSpot虚拟机中,对象在内存中的布局分为3个区域 对象头(Header) Mark Word(在32bit和64bit虚拟机 ...
- 大神是怎样用函数式JavaScript计算数组平均值的
译者按: 有时候一个算法的直观.简洁.高效是需要作出取舍的. 原文: FUNCTIONAL JAVASCRIPT: FIVE WAYS TO CALCULATE AN AVERAGE WITH ARR ...
- quickpow || 快速幂
洛谷例题 推荐自行脑补:百度百科 如果 ,那么 : 前言:快速幂就是快速算底数的n次幂.其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高. 拿题目样例 Input :2 1 ...
- ACM数论-求组合数
我们利用这个公式求阶乘和逆元求阶: #include<cstdio> const int N = 200000 + 5; const int MOD = (int)1e9 + 7; int ...
- 题解报告:poj 3061 Subsequence(前缀+二分or尺取法)
Description A sequence of N positive integers (10 < N < 100 000), each of them less than or eq ...
- 【先定一个小目标】Ubuntu 16.04 搭建 zookeeper
ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务,提供了诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知和分布式锁等分布式基础服务.由于 Zo ...
- HBuilder的默认工作空间的修改
HBuilder的默认工作空间的修改并不像其他ide一样,在设置里进行更改,而是在工具中进行设置. 1.单击菜单栏“工具”,选择“变更默认代码存放目录” 2.进行修改即可.
- [转]Sorting, Filtering, and Paging with the Entity Framework in an ASP.NET MVC Application (3 of 10)
本文转自:http://www.asp.net/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/sorting-fi ...
- C# .net实现下载,带进度条
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...