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月份的时候,因为这个分享的证书获取问题深深的栽了一坑, ...
随机推荐
- sass 安装与各种命令
css 是一种编程语言,可以用来开发网页样式,但是却不能编程,没有变量,没有条件语句,于是就有了“css预处理器”, 它的原理就是:利用编程语言进行网页样式设计,然后再编译成正常的css文件: sas ...
- 洛谷P3239 [HNOI2015]亚瑟王(期望dp)
传送门 stdcall大佬好强 期望的姿势不是很高……据大佬说期望有一个线性性质,也就是说可以把每一张牌的期望伤害算出来然后再加起来就是总的期望伤害 因为每一张牌只能用一次,我们设$dp[i]$表示第 ...
- 重置iptables
# reset the default policies in the filter table.iptables -P INPUT ACCEPTiptables -P FORWARD ACCEPTi ...
- [ZOJ1140]Courses 课程
Description 给出课程的总数P(1<=p<100),学生的总数N(1<=N<=300) 每个学生可能选了一门课程,也有可能多门,也有可能没有. 要求选出P个学生来组成 ...
- poj 2083 Fractal 递归 图形打印
题目链接: http://poj.org/problem?id=2083 题目描述: n = 1时,图形b[1]是X n = 2时,图形b[2]是X X X ...
- DB2:在缓冲池 "1" 中当前没有任何页面可用。. SQLCODE=-1218, SQLSTATE=57011, DRIVER=3.61.75
服务器端DB2数据库最近频繁报错: 在缓冲池 , SQLSTATE=, DRIVER= 试验发现简单的查询SQL执行没有问题,复杂的SQL就会报上述错误. 百度发现是因为数据库bufferpool太小 ...
- java封装的优点
在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机 ...
- python 使用 Pyscript 调试 报错
UnicodeEncodeError: 'ascii' codec can't encode characters in position 13-16: ordinal not in range(12 ...
- JWT认证阐述
哥发达了,是时候实现一下儿时的梦想了,怡红院开起! 店面门脸装修如何?做生意,谁还没个镇店之宝啊?有请我的店长如花小姐! 没事哈!别怕,扭曲的五官往往都藏着一颗纯洁的心灵. 不管如何吧,我的怡红院算是 ...
- 锐动SDK应用于行车记录仪
方案架构 手机端直播与录播功能忠实记录旅途中各种突发事件,还原事实真相,与家人和朋友分享沿途美景,一同感受美妙之旅. 强大的视频编辑功能,像编辑图片一样给视频添加各种滤镜,配音,配乐,标题文字等特效. ...