怎么做微信第三方登录demo,有具体的代码demo吗?

博客分类:
& 第三方登录及分享对于应用的重要性无须多言,本文运用SharkSDK集成到自己的项目中,实现该功能。
& 一 下载SDK:ShareSDK官网下载最新版本的SDK,下载地址:下好对应的SDK,有些简单的步骤就不一一介绍了。
& 二 集成ShareSDK:
&&&&&& 1,解压SDK,得到目录结构为
,集成有三种方式,
1、直接复制jar包到目标项目libs目录直接复制jar和资源的方式,可以参考ShareSDK的Sample项目。
使用复制jar的方法,需要除了复制MainLibs/libs中的jar外,还需要复制MainLibs/res中图片和strings,否则会出现授权时找不到资源的问题。
而且如果您的项目也集成了快捷分享,还需要复制OneKeyShare/src中的源码、OneKeyShare/res中的资源,如果你的项目里没有android-support-v4的jar需要把OneKeyShare/libs下的android-support-v4的jar到您的项目中。
2 快速生成项目
&&
由于直接复制jar包和资源的集成方式比较麻烦,ShareSDK提供了快速集成的程序,在Windows下可以直接双击执行,或Linux/Mac OS下通过终端启动执行
这个程序会自动搜集集成SDK所需要的jar和资源,完成以后可以通过复制目标目录中的文件到您项目中覆盖就行了。
极大简化了“直接复制jar和资源”这种集成方式的操作步骤。
对于你的项目是刚开发或者想写一个Demo测试ShareSDK功能,可以使用这种方法快速集成
3、项目引用
& 在SDK目录 中将你需要集成的功能导入eclispe中。
三 添加应用信息
&& 有三种方式
第一种:在ShareSDK的应用管理后台中配置,使用此方法需要调用ShareSDK.init(context,你的应用在sharesdk注册时返回的AppKey)方法进行初始化,如果以后更改了注册信息可以直接从网上更改,而不用重新发布新版本进行更新。(优先级最高)。
第二种:通过代码配置“setPlatformDevInfo(String, HashMap&String, Object&)”方法,使用此方法需要调用ShareSDK.init(context,你的应用在sharesdk注册时返回的AppKey)方法进行初始化。(优先级中)。
第三种:通过“assets/ShareSDK.xml”文件来配置,次方式会以明文存在,但这种方式最为简单。(优先级最低)。
& 在这里我是通过第三种方式添加的,利用新浪微博作为例子。
&ShareSDK
[color=red]AppKey[/color]="填写您在ShareSDK上注册到的AppKey" /&
&SinaWeibo
SortId="此平台在您分享列表中的位置,整型,数值越大越靠后"
[color=blue]AppKey[/color]="填写您在新浪微博上注册到的AppKey"
[color=blue]AppSecret[/color]="填写您在新浪微博上注册到的AppSecret"
Id="自定义字段,整型,用于您项目中对此平台的识别符"
RedirectUrl="填写您在新浪微博上注册的RedirectUrl"
ShareByAppClient="是否使用客户端进行分享"
Enable="布尔值,标记此平台是否有效" /&
红色标记的Appkey需要在ShareSDK官网上注册创建应用得到,蓝色标记的则需要在新浪微博开放平台注册。这三者必须正确填写,此外在各开放平台创建应用时,需要填写包名及签名,这是在验证的时候需要用到,如果你的实际应用包名和签名与注册包名及签名不一致,是不能达到本文目的的。
四 配置AndroidManifest.xml
&& 首先需要添加一些权限:
& &uses-permission android:name="android.permission.GET_TASKS" /&
&uses-permission android:name="android.permission.INTERNET" /&
&uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&
&uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&
&uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /&
&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&
&uses-permission android:name="android.permission.READ_PHONE_STATE" /&
&uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/&
&uses-permission android:name="android.permission.GET_ACCOUNTS"/&
& 这些权限将允许您的项目和ShareSDK判断当前应用是否“前置”、获取连接网络的权限、获取您的设备网络状态的权限、实现https安全连接的权限、读取手机设备状态的权限和保存必要配置的权限。一般来说,即便不集成ShareSDK,大部分的项目也都会注册申请这些权限。
其次,为了授权操作可以顺利完成,需要在application下注册下面的Activity:
& &activity
android:name="cn.sharesdk.framework.ShareSDKUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" /&
五 添加代码
打开您项目的入口Activity,在其onCreate中插入下面的代码:
如果使用ShareSDK.xml方式配置调用ShareSDK.IinitSDK(this);
这样你已经在自己的项目里面集成了ShareSDK了,以下代码就是分享到新浪微博了。
ShareParams sp = new ShareParams();
sp.setText(“测试分享的文本”);
sp.setImagePath(“/mnt/sdcard/测试分享的图片.jpg”);
Platform weibo = ShareSDK.getPlatform(context, SinaWeibo.NAME);
weibo.setPlatformActionListener(paListener); // 设置分享事件回调
// 执行图文分享
weibo.share(sp);
其它的功能,比如SSO,一键分享等不做详细介绍,可以查看ShareSDK API。
&& 因为写的比较匆促,可能介绍的不够详细,所以在最后一一附上一些有用的地址,感兴趣的可以参照文档介绍来实现你自己的demo。
&& ShareSDK集成http://wiki.sharesdk.cn/Android_快速集成指南
微博API Help/error :
这个地址方便于调试代码,我当时就是因为没找到这个API,所以报错了也不知道什么原因,如果操作,比如分享失败,系统会返回一个error-code,根据出错的error-code对应该API找出原因。
&& 各个平台注册应用信息的地址如下:
新浪微博&&&
腾讯微博&&&
QQ空间&&&&&
微信好友&&&
Facebook&&
Twitter&&&
人人网&&&&&&
开心网&&&&&&
搜狐微博&&&&
网易微博&&&&
豆瓣&&&&&&&&
有道云笔记&&
印象笔记&&&&&
Linkedin&&
FourSquare&&&
搜狐随身看&&&&&
Flickr&&&&&&&
Pinterest&&&&
Tumblr&&&&&&&
Dropbox&&&&&&
Instagram&&&&
VKontakte&&&&
在下个路口
浏览: 62170 次
博主你好,我遇到下面这个总是:UtilityAdaptert
好的,非常感谢!
在下个路口 写道对对对,我写反了,从字符串的.length() ...
对对对,我写反了,从字符串的.length(),带了()就知道 ...
字符串的length是method,数组的length是pro ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'& 在一家ecstore二开公司有一段时间了,公司希望往自己研发产品上面走,一直在培养新人。
& 最近要自己去微信登录,自己就在ectore的框架基础上,写的原生微信第三方登录以此来熟悉微信第三方登录,在ecstore上面去写。
& 一个简单的demo,不是很好,分享给大家,希望能给想做微信第三方登录的朋友带来思路...
资料准备:
水印图片 28*28
高清图片 108*108
1.在微信开放平台 https://open.weixin.qq.com/中填写基本信息,
2.完成邮箱验证,
3.并完善开发者资料,注册成为开发者。
4.在“账号中心”完成开发者资质认证。
5.进入微信开放平台管理中心网站应用,点击“创建应用”按钮。
6.填写基本信息,完成点击下一步
7.填写平台信息
应用签名:可在微信开发平台的资源中心》》资源下载》》中下载“签名生成工具”,用户获取已经安装到手机的第三方应用的签名。输入应用包名,即可获得该应用的签名值。
8.提交审核后,在7个工作日内腾讯将给出审核结果。(通常较快,几个小时就可反馈结果)
& 获取AppID,AppSecret,之后的处理:
需要在你想加的网站登录页给一个链接:&a href="https://open.weixin.qq.com/connect/qrconnect?appid=your appid &redirect_uri=http://www.sunmil.cn/passport-linshi.html&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect"&微信登录&/a&
处理微信登录开始
定义appid appsecert
private $appid = "your appid";
private $appsecert = "your appsecert";
private $redirect_uri = "http://www.sunmil.cn/wxGetCode";
&&绑定账号页面
public function weixin(){
//链接数据库
$link = mysqli_connect(DB_HOST, DB_USER,DB_PASSWORD,DB_NAME ) or die('数据库连接失败4');
$link = mysqli_connect('127.0.0.1', 'root','root', 'ec') or die('数据库连接失败');
mysqli_set_charset($link,'utf8');
//接收openid
$openid = $_COOKIE['openid'];
$sql = "select * from sdb_trustlogin_trustinfo where openid = '$openid' ";
$res = mysqli_query($link, $sql);
$row = mysqli_fetch_assoc($res);
$this-&pagedata['realname'] = $row['realname'];
$this-&pagedata['avatar'] =
$row['avatar'];
$this-&page("site/passport/weixin.html");
当第一次微信登录,处理绑定账号页面
public function handle($url=null){
// $url = "http://www.sunmil.cn";
//链接数据库
$link = mysqli_connect(DB_HOST, DB_USER,DB_PASSWORD,DB_NAME ) or die('数据库连接失败3');
mysqli_set_charset($link,'utf8');
$post = utils::_filter_input($_POST);
$userData = array(
'login_account' =& $post['uname'],
'login_password' =& $post['password']
$member_id = kernel::single('pam_passport_site_basic')-&login($userData,$post['verifycode'],$msg);
$b2c_members_model = $this-&app-&model('members');
$member_point_model = $this-&app-&model('member_point');
$member_data = $b2c_members_model-&getList( 'member_lv_id,experience,point', array('member_id'=&$member_id) );
$member_data = $member_data[0];
$member_data['order_num'] = $this-&app-&model('orders')-&count( array('member_id'=&$member_id) );
$b2c_members_model-&update($member_data,array('member_id'=&$member_id));
$this-&userObject-&set_member_session($member_id);
$this-&bind_member($member_id);
$this-&set_cookie('loginName',$post['uname'],time()+);//用于记住密码
// setCartNum()需要传入一个参数
$aCart = array();
$this-&app-&model('cart_objects')-&setCartNum($aCart);
$url = $this-&userPassport-&get_next_page('pc');
if( !$url ){
$url = kernel::single('b2c_frontpage')-&gen_url(array('app'=&'b2c','ctl'=&'site_member','act'=&'index'));
//查询数据库
$uname = $_POST['uname'];
$sql = "select * from sdb_pam_members where password_account = '$uname' ";
$res = mysqli_query($link, $sql);
$row = mysqli_fetch_assoc($res);
$member_id = $row['member_id'];
//链接数据库,插入数据
$_COOKIE['openid'];
$sql = "update sdb_trustlogin_trustinfo set member_id = ('{$member_id}')
where openid = '{$openid}'";
$res = mysqli_query($link, $sql);
if($res && mysqli_affected_rows($link) & 0){
//删除cookie
setcookie("openid", $openid, time()-3600);
kernel::single('pam_lock')-&flush_lock($member_id);
$this-&splash('success',$url,app::get('b2c')-&_('登录成功'),true);
echo '失败了';
处理绑定注册页面
public function weixin1(){
//链接数据库
$link = mysqli_connect(DB_HOST, DB_USER,DB_PASSWORD,DB_NAME ) or die('数据库连接失败2');
mysqli_set_charset($link,'utf8');
//接收openid
$openid = $_COOKIE['openid'];
$sql = "select * from sdb_trustlogin_trustinfo where openid = '$openid' ";
$res = mysqli_query($link, $sql);
$row = mysqli_fetch_assoc($res);
$this-&pagedata['realname'] = $row['realname'];
$this-&pagedata['avatar'] =
$row['avatar'];
$this-&page("site/passport/weixin1.html");
绑定注册页面
public function handle1($url=null){
//链接数据库
$link = mysqli_connect(DB_HOST, DB_USER,DB_PASSWORD,DB_NAME ) or die('数据库连接失败1');
mysqli_set_charset($link,'utf8');
$_POST = utils::_filter_input($_POST);
$saveData = $this-&userPassport-&pre_signup_process($_POST);
if( $member_id = $this-&userPassport-&save_members($saveData,$msg) ){
$this-&userObject-&set_member_session($member_id);
$this-&bind_member($member_id);
foreach(kernel::servicelist('b2c_save_post_om') as $object) {
$object-&set_arr($member_id, 'member');
$refer_url = $object-&get_arr($member_id, 'member');
/*注册完成后做某些操作! begin*/
foreach(kernel::servicelist('b2c_register_after') as $object) {
$object-&registerActive($member_id);
$data['member_id'] = $member_id;
$data['uname'] = $saveData['pam_account']['login_account'];
$data['passwd'] = $_POST['pam_account']['psw_confirm'];
$data['email'] = $_POST['contact']['email'];
$data['refer_url'] = $refer_url ? $refer_url : '';
$data['is_frontend'] = true;
$obj_account=$this-&app-&model('member_account');
$obj_account-&fireEvent('register',$data,$member_id);
if(!strpos($_SESSION['pc_next_page'],'cart')){
$url = $this-&gen_url(array('app'=&'b2c','ctl'=&'site_passport','act'=&'sign_tips'));
$url = $_SESSION['pc_next_page'];
//会员注册成功,处理member_id 开始
$login_name = $_POST["pam_account"]["login_name"];
$sql = "select member_id from sdb_pam_members where password_account = '{$login_name}'";
$res = mysqli_query($link, $sql);
$row = mysqli_fetch_assoc($res);
$member_id = $row['member_id'];
//链接数据库,插入数据
$_COOKIE['openid'];
$sql = "update sdb_trustlogin_trustinfo set member_id = ('{$member_id}')
where openid = '{$openid}'";
$res = mysqli_query($link, $sql);
if($res && mysqli_affected_rows($link) & 0){
//删除cookie
setcookie("openid", $openid, time()-3600);
$this-&splash('success',$url,app::get('b2c')-&_('注册成功'),$ajax_request);
//会员注册成功,处理member_id 结束
$this-&splash('failed',$back_url,app::get('b2c')-&_('注册失败'),$ajax_request);
public function linshi(){
$_GET['code'];
$_GET['state'];
if($state === 'STATE'){
$this-&loginWeixin($code);
}elseif($state === 'wxBind'){
$this-&bindWeixin($code);
return redirect("http://www.sunmil.cn");
loginWeixin
private function loginWeixin($code){
//链接数据库
$link = mysqli_connect('127.0.0.1', 'root','root', 'ec') or die('数据库连接失败');
mysqli_set_charset($link,'utf8');
$appid = $this-&
$appsecert = $this-&
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecert."&code=".$code."&grant_type=authorization_code";
//curl模拟get请求,获取结果
$res = $this-&http_curl($url);
//转化为数组
$result = json_decode($res,true);
$openid = $result['openid'];
//openid存在,直接登录,openid不存在,先注册再登录
$sql = "select openid from sdb_trustlogin_trustinfo";
$res = mysqli_query($link, $sql);
$row = mysqli_fetch_all($res);
//foreach 判断
foreach ($row As
if(in_array($openid,$v,true)){
//缺少登录信息
$sql = "select member_id from sdb_trustlogin_trustinfo where openid = '{$openid}'";
//查出member_id
$res = mysqli_query($link, $sql);
$row = mysqli_fetch_assoc($res);
$member_id = $row['member_id'];
//查出会员信息
$sql = "select * from sdb_pam_members where member_id = '{$member_id}'";
$res = mysqli_query($link, $sql);
$row = mysqli_fetch_assoc($res);
$login_name = $row['login_account'];
//存入cookie
setcookie('UNAME',$login_name, time()+360000);
echo "&script&window.location.href='http://www.sunmil.cn'&/script&";
$access_token = $result['access_token'];
//获取用户基本信息
$getInfoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN";
$userInfo = $this-&http_curl($getInfoUrl);
$trustinfo = json_decode($userInfo);
//判断trustinfo表里面是否存在该条数据
$trustinfo-&
$trustinfo-&
$trustinfo-&
$trustinfo-&
$trustinfo-&
$trustinfo-&
$trustinfo-&
$trust_source = 'trustlogin_plugin_weixin';
//连接数据库,插入数据
$sql = "insert into sdb_trustlogin_trustinfo
(openid,realname,avatar,gender,province,city,trust_source) values ('{$openid}','{$nickname}','{$avatar}','{$sex}','{$province}','{$city}','{$trust_source}')";
$res = mysqli_query($link, $sql);
if($res && mysqli_affected_rows($link) & 0){
//存入cookie
setcookie('openid',$openid, time()+3600);
header("Location:http://www.sunmil.cn/passport-weixin.html");
echo '失败了';
&curl模拟get请求
private function http_curl($url){
$curlobj = curl_init();
curl_setopt($curlobj, CURLOPT_URL, $url);
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlobj, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curlobj, CURLOPT_SSL_VERIFYHOST, FALSE);
$output = curl_exec($curlobj);
curl_close($curlobj);
return $output;
& 处理微信登录结束
& 就可以实现微信登录了,当然了,一个简单熟悉微信第三登录的demo,有机会用tp框架分装完善一个完整的微信第三方登录。
& 欢迎留言,大家一起讨论。
阅读(...) 评论()院领导集体
中国科学院大学
上海科技大学
《中国科学院院刊》(中文版)是中国科学院主办的以战略与决策研究为主的科技综...
《科学通报》是自然科学综合性学术刊物,力求及时报道自然科学各领域具有创新性...
覆盖数学、物理、化学、生命科学、地球科学、信息科学、技术科学与天文学等学科...
近几年,电信诈骗层出不穷,日益猖獗,不仅造成了人民群众钱...
中国自古就有“民以食为天”的说法,“吃”可谓是头等大事,...
作为“天宫一号”的“继承者”,天宫二号即将进行的各类实验...
我国首颗微重力科学实验卫星——“实践十号”已于...
去澳门博彩的技巧:阿圭罗又不爽了?瓜迪奥拉回应:我能够理解他
我要分享 &
文章来源:文西文网&&&&发布时间:&&【字号:&&&&&&】
去澳门博彩的技巧我的很多友人都分隔了IBM,但他们决意留在广东。她还暗示,比来,“所有楼盘都甘愿批准降价。“老27条”是在2008年正式下发的,促使其下发的重要身分是榆林与西北另外一个资本明星城市——鄂尔多斯的竞争。(RLX) 【排场境地要点:中石油套现东部管道处所政府该若何接盘?】为顺应国度年夜力奉行的同化所有制更始、解决适度海外扩年夜遗留下的高欠债问题,中石油自2012年起便始终出卖与西气东输工程相干的管道资产套现。
1.终究分析论断(Final Analysis Conclusion):楼市跟贸易周期双拐点正在敦促财政周期转向,改削估算法履行零基估算,进而更始财政预决算体系,并经由过程完全更始事业单元怪胎,强化市场化的政府处事采办,之前进财政资金操作效力,并经由过程强化实体经济创富根基扩年夜财源而非借助金融市场牵萝补屋,理当作为将来中国遏制财政赤字扩年夜的关头。”近日,网上传播的一份万科履行副总裁毛年夜庆在内部沙龙的讲话,将唐山这座GDP排名河北第一的重财富城市推上风口浪尖。2008年为了应对世界金融危机,我国启动了较年夜局限的财政刺激,处所政府的财政支出压力较年夜,加重了对土地财政跟土地金融的仰仗,也加速了对城市土地的征用过程,近若干好多年我国的新增扶植用地若干好多乎全数来自于征用的农业用地。“曲江国玺名目跟阳光华庭正在让渡,”上述知情人士流露。但是,在TPP面前,中國政府面臨進退兩難的逆境。
2.他们认为,中山市最低工资程度是1310元,格兰仕的工人每个月吃住根基花不了甚么钱,而且多是90后,没成婚没必要养家,会筹算的话一个月起码也能省下2000元。去澳门博彩的技巧新华社:日常生活被直播 居民的个人隐私谁来保护?我不会估计在将来的五年当中贸易银行会丢失落渠道的独霸权,但政策的放松、互联网技巧和贸易模式的广泛,对贸易银行渠道霸主地位的鲸吞必定是不成逆的。作为世界第一年夜经济体的P平易近,也乐得让人带领来采办屋宇跟车辆,借用一个不太适当的例如,“假定你抗拒不了强暴,那就闭上眼睛去好好享受吧”,刚手里有点钱的中国P平易近,也就像一个守了半辈子寡的丑孀妇,好不苟且有个强盗要每天强暴她,久旱逢甘雨啊,她会死力抗拒这个么?她难道不感应这个很受用么?想必啊,她才乐不得要闭上眼睛尽兴地“享受”这个呢。她倡议,对所有金融勾当都应年夜白产物功能的性质、年夜白法令联系关系、年夜白收益跟危险承担的义务,和针对波及年夜都人益处的金融勾当要严酷监管,才干使影子银行的成长,利于金融组织达到间接金融跟直接金融均衡成长。
3.三四线城市的消化周期约为24个月。当初职工以罢工情势请求加薪,将进一步缩短中国作为“世界工场”的回旋空间。企颐魅债券是由国度发改委监管,由非上市公司(或全平易近所有制企业)刊行,由证券公司承销;公司债券是由证监会监管,由上市公司刊行,由证券公司承销;中期单据是由银行间市场生意商协会监管,由所有非金融企业刊行,由银行(后续纳入了部分证券公司作为会员)承销;短时间融资券跟中期单据独一的分歧是为一年期(及以内)产物。据统计,截至5月11日,兴业、中信、招行、浦发、农行已分辨刊行了10期、5期、3期、6期跟2期同业存单,已刊行局限累计522.7亿元,占首批10家试点银行颁布的8600亿元同业存单刊行筹算的6.08%。一想起以往每次中心带领人访美的时辰,送给美国的接见会面礼除上百亿美元的年夜订单以外,常常还有国平易近币升值,眼下中美联系关系和缓,我就怕中国腰一软,经不住美国的重年夜关注,又让国平易近币赶鸭子上架的升值,为有硬着陆之虞的中国经济套上最给力的一道绞索。
<img src="http://www.qqfenzu.com/xin/images/.jpg" alt="去澳门博彩的技巧"
总结来说,在激烈的市場競爭面前,「到中國去」,已經成為國外企業的保存法則。在他看来,中国的政府债权,包含中心政府跟处所政府的欠债、融资平台的债权,将来照旧要增加。而且,今朝山西省煤炭企业吨煤均匀利润只有5.72元,同比削减13.25元,降落69.92%。据中国社科院法学所田禾供给的数据,一项针对广东、黑龙江、江西、福建四省政府洽购的考查显示,采办的15190件商品,按市场价筹算需花5860万元,现实支出了7934万元,多花了35.4%的委屈钱。
(责任编辑:开北丁)App 里用第三方登录,在服务器端怎么做验证?
14:02:23 +08:00 · 19767 次点击
RT,App里用友盟的SDK做第三方登录,支持微博,微信,QQ,豆瓣等等,获取到uid和access token传给我。
我在服务端想验证uid的真伪,友盟没有服务端的接口,要自己一家一家做觉得有点麻烦,有没有开源的实现?
26 回复 &| &直到
00:18:52 +08:00
& & 14:13:08 +08:00
没有. 验证他干啥....传给你什么就是什么就认为已经登录过就好了啊.
验证是APP端做的
& & 14:35:26 +08:00
@ 当然是为了安全,如果不做验证的话,别人只要修改客户端或者HTTP连接中的uid就可以冒充其它用户了
& & 14:38:57 +08:00
你需要了解Oath2
& & 14:39:12 +08:00
@ 所以你的 api 本身需要对信息做验证,以确保中途被人截获的请求修改参数是无效的
如果真的想要验证 uid 那么只能是一家一家去做
& & 14:41:24 +08:00
打错了,oauth2 accesstoken本身就是一个令牌
& & 14:42:10 +08:00
那是你和app的事了,和第三方没关系,第三方只是告诉你的app:ok ,验证通过,你的uid是xxx,头像是xxx,性别:o
& & 14:58:14 +08:00
@ 我了解一点OAuth2,在这里的access token的Resource server是第三方服务器,拿着这个去转发新浪微博或者发朋友圈是安全的,因为Resource server可以向Authorization server验证token。但是对于我的服务器来说,如果不对token做验证,那谈何安全?
& & 15:53:54 +08:00
@ 在你的APP上也做Token
& & 16:31:09 +08:00
@ 算了,感觉你也没做过。我的App里当然有自己的token。我自己系统的账号可以在数据库里验证密码,第三方的系统只能请求别人的服务器做验证。第三方平台也都提供了这个接口,比如
我只想找个集成好的实现以免重复写代码,没想到这么多人跳出来告诉我不需要验证,现在程序员的安全意识真是呵呵了。
& & 16:48:19 +08:00
那你要找集成在服务器的oauth实现
& & 17:00:31 +08:00
我靠,文档你不看,github你不查,开源中国你不读。。。。。
& & 17:37:31 +08:00
@ 查了,没找到,能给个链接吗?
& & 20:29:04 +08:00
自己实现一下吧 = =
第三方登录总共也就那么几家而已。
服务端语言是啥?
& & 20:54:11 +08:00
原来还有人不验证= =自己玩大概不用验证,做成产品就得有了吧= =
没用过友盟,没用过国产第三方登录服务= =
就简单地搜了一下,看到了一些人的学习笔记,例如:
感觉你就别想着找开源实现了= =自己做吧= =
& & 22:02:53 +08:00
后台拿access_token再去获取一下用户信息比对一下
主要也就QQ 微信 微博 , 主要还是微信和QQ, 微博登录数差了个数量级,其它的估计量更小了
另外提一下:
QQ那个有点坑,你拿app上得到access_token在服务端取信息,有一定概率拿到的用户信息是&qzuser&,没头像,没信息
猜测是因为你app和服务器ip不同,导致连接了qq不同的服务器,而qq集群间数据同步方面偶尔抽风,瞎猜,反正我没解决 -_- ,这种情况只好直接拿APP得到的userinfo来用。
& & 22:07:47 +08:00
若用户拒绝授权,你就会拿到 qzuser .
& & 22:27:22 +08:00
授权了,在APP上能拿到
& & 22:30:18 +08:00
打个广告。服务器自己实现?
& & 11:36:37 +08:00
没什么验证的必要吧,uid和accessToken都是QQ、微博那边传过来的,你那边要验证就只能自己又重新在微博那边走一遍Oauth
& & 21:22:49 +08:00
@ 怎么会没必要呢?
比如某个大V用微博登录了知乎。我上微博看一下大V的页面就能拿到大V的uid,然后再自己编造一个accessToken,发给知乎的服务器,知乎的服务器如果不再去微博验证accessToken,相信了这个uid,这样我不就登录到他的知乎号上了吗?
& & 02:30:30 +08:00
你好,问题解决的怎么样了?刚开始做 App,到第三方登录我也想不通了,是在自己的服务端单独验证 token 的吗?
& & 17:05:36 +08:00
@ 是的,我是在服务端再请求一次第三方服务器做认证,代码量其实不大,不同平台就是url不同。
在QQ开放平台的文档里看到一段关于登录态验证的必要性的解释,你可以看一下。
& & 18:17:14 +08:00
挖个坟,居然还有说不需要验证的,真是有意思
& & 17:01:46 +08:00
我想说,不是可以通过 accessToken通过第三方的api获取到用户的uid吗?然后再对比Uid是否相同!这样算验证吗?
另外,想问下lz!当用户第二次启动app的时候,客户端给你传什么值?
& & 20:20:03 +08:00
@ qq 和 微信的 uid 应该是每个应用不一样且不可遍历的,所以应该可以。但是微博的 uid 就是直接在 浏览器里能看到的数字
,这样就危险了。。
& & 00:18:52 +08:00
我自己做了一个关于登录校验的 Java 版本,在 github 上,大家可以参考一下。技术不行,还要向大家多学习
& · & 2848 人在线 & 最高记录 3541 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.1 · 19ms · UTC 08:10 · PVG 16:10 · LAX 01:10 · JFK 04:10? Do have faith in what you're doing.

我要回帖

更多关于 微信第三方登录demo 的文章

 

随机推荐