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月份的时候,因为这个分享的证书获取问题深深的栽了一坑, ...
随机推荐
- linux下解压tgz文件(转载)
转自:http://www.blogjava.net/chenlb/archive/2008/09/03/226654.html .tgz 解压: tar zxvf myfile.tgz
- bzoj 1602: [Usaco2008 Oct]牧场行走【瞎搞】
本来想爆手速写个树剖,然而快下课了就手残写了了个n方的短小-- 暴力把查询的两个点中深的一个跳上来,加上边权,然后一起跳加边权就行了 #include<iostream> #include ...
- DFS(深度) hihoCoder挑战赛14 B 赛车
题目传送门 题意:中文题面 分析:放官方题解,就是从1为根节点深搜记录节点的深度,选出最大的深度的点,将该到达该点的节点都vis掉,然后再重新计算没有vis的点的深度,找最大的相加就是答案.放张图好理 ...
- 前缀+排序 HDOJ 4311 Meeting point-1
题目传送门 题意:给一些坐标轴上的点,选一个点,使得其他点到该点曼哈顿距离和最小 分析:这题有很强的技巧性,直接计算每个点的曼哈顿距离和是不可行的.这里用到了前缀的思想,先对点按照x从左到右排序,p[ ...
- ACM_平面、空间分割问题(递推dp)
折线分割平面 Time Limit: 2000/1000ms (Java/Others) Problem Description: 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要 ...
- 善用oss客户端工具
有个需求:需要我到阿里oss上下载ts文件 估摸了一下100多个只占了6分之一的时间,全下下来得700多个 还不算上正在运行的 正当我手动一个一个点的时候: 100个 总算点完了 全部在桌面是摆着: ...
- ambari-server启动报错500 status code received on GET method for API:/api/v1/stacks/HDP/versions/2.4/recommendations Error message : Server Error解决办法(图文详解)
问题详情 来源是,我在Ambari集群里,安装Hue. 给Ambari集群里安装可视化分析利器工具Hue步骤(图文详解 所遇到的这个问题. 然后,去ambari-server的log日志,查看,如下 ...
- Swift 基础语法入门(一)
一.变量和常量 1.声明常量和变量 用let来声明常量 let radius = 10 用var来声明变量 var age = 20 或者是var x = 0.0, y = 0.0, z = 0 ...
- apache反向代理配置
apache简单的反向代理配置 Proxypass /api /http://locahost:3000 反向代理-1.jpg
- JS 中的 JSON
JSON是JavaScript Object Notation的缩写,它是一种数据交换格式. 在JSON出现之前,大家一直用XML来传递数据.因为XML是一种纯文本格式,所以它适合在网络上交换数据.X ...