用第三方微信登录不跳转第三方应用安全吗?

微信OAuth2.0授权登录让微信用户使用微信身份安全登录第三方应用或网站,在微信用户授权登录已接入微信OAuth2.0的第三方应用后,第三方可以获取到用户的接口调用凭证(access_token),通过access_token可以进行微信开放平台授权关系接口调用,从而可实现获取微信用户基本开放信息和帮助用户实现基础开放功能等。
前提准备:
申请你的AppID
下载微信终端开发工具包以及签名apk
把对应的工具包放到项目内
AndroidManifest.xml 设置一些权限
步骤可以分为三步;一步是在客户端发起处理,剩下的两步是在服务器端进行的;
第一步: 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;
package com.wx.app
import android.annotation.SuppressLint
import android.app.Activity
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.os.Bundle
import android.view.View
import android.view.View.OnClickListener
import android.widget.Toast
import com.alibaba.fastjson.JSON
import com.alibaba.fastjson.JSONObject
import com.tencent.mm.sdk.modelmsg.SendAuth
import com.tencent.mm.sdk.modelmsg.SendMessageToWX
import com.tencent.mm.sdk.modelmsg.WXMediaMessage
import com.tencent.mm.sdk.modelmsg.WXWebpageObject
import com.tencent.mm.sdk.openapi.IWXAPI
import com.tencent.mm.sdk.openapi.WXAPIFactory
import com.wx.app.util.DownLoadImage
import com.wx.app.util.DownLoadImage.BitmapCallBack
import com.wx.app.util.HttpUtil
import com.wx.app.util.WXUtil
@SuppressLint("ShowToast")
public class AppsActivity extends Activity {
// 自己微信应用的 appId
public static String WX_APP_ID = ""
public static String WX_CODE = ""
public static IWXAPI wxApi
public static boolean isWXLogin = false
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_apps)
wxApi = WXAPIFactory.createWXAPI(this, WX_APP_ID, true)
wxApi.registerApp(WX_APP_ID)
findViewById(R.id.wx_login).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
isWXLogin = true
SendAuth.Req req = new SendAuth.Req()
req.scope = "snsapi_userinfo"
req.state = "wechat_sdk_demo"
wxApi.sendReq(req)
findViewById(R.id.wx_share).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
final SendMessageToWX.Req req = new SendMessageToWX.Req()
WXWebpageObject webpage = new WXWebpageObject()
// 要跳转的地址
webpage.webpageUrl = "http://www.baidu.com"
final WXMediaMessage msg = new WXMediaMessage(webpage)
msg.title = "标题"
msg.description = "要分享到微信的内容,要换行使用 \n 已经换行"
// 网络图片地址 png 格式
// eg: http://h.hiphotos.baidu.com/image/w%3D310/sign=f95caa6f594b7f9177fc5/aa1fa29e06ab19c510fb30f2408a1.png
String imageUrl = ""
// 0:发送到朋友 1:发送到朋友圈 2:收藏
final int shareWhat = 0
if (imageUrl.length() == 0) {
// 分享的图片不能超过32k 否则弹不出微信分享框
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher)
msg.thumbData = WXUtil.bmpToByteArray(bmp, true)
req.transaction = buildTransaction("webpage")
req.message = msg
req.scene = shareWhat
wxApi.sendReq(req)
// 主线程不能访问网络,开启线程下载图片
new DownLoadImage(imageUrl).loadBitmap(new BitmapCallBack() {
public void getBitmap(Bitmap bitmap) {
// 分享的图片不能超过32k 压缩图片
Bitmap thumbBmp = Bitmap.createScaledBitmap(bitmap, 100, 100, true)
bitmap.recycle()
msg.thumbData = WXUtil.bmpToByteArray(thumbBmp, true)
req.transaction = buildTransaction("webpage")
req.message = msg
req.scene = shareWhat
wxApi.sendReq(req)
private String buildTransaction(final String type) {
return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis()
protected void onResume() {
super.onResume()
if (isWXLogin) {
loadWXUserInfo()
private void loadWXUserInfo() {
//进行传递WX_CODE与服务器端进行交互
微信回调的类注意类名以及所在文件的位置
package com.wx.app.wxapi
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.widget.Toast
import com.tencent.mm.sdk.modelbase.BaseReq
import com.tencent.mm.sdk.modelbase.BaseResp
import com.tencent.mm.sdk.modelmsg.SendAuth
import com.tencent.mm.sdk.openapi.IWXAPIEventHandler
import com.wx.app.AppsActivity
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
AppsActivity.wxApi.handleIntent(getIntent(), this)
public void onReq(BaseReq req) {
public void onResp(BaseResp resp) {
switch(resp.errCode) {
case BaseResp.ErrCode.ERR_OK:
if(AppsActivity.isWXLogin){
SendAuth.Resp sendResp = (SendAuth.Resp) resp
AppsActivity.WX_CODE = sendResp.code
Toast.makeText(this, "成功!", Toast.LENGTH_LONG).show()
case BaseResp.ErrCode.ERR_USER_CANCEL:
Toast.makeText(this, "取消!", Toast.LENGTH_LONG).show()
case BaseResp.ErrCode.ERR_AUTH_DENIED:
Toast.makeText(this, "被拒绝", Toast.LENGTH_LONG).show()
Toast.makeText(this, "失败!", Toast.LENGTH_LONG).show()
AppsActivity.isWXLogin=false
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent)
setIntent(intent)
AppsActivity.wxApi.handleIntent(intent, this)
manifest的配置文件:
&?xml version="1.0" encoding="utf-8"?&
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.wx.app"
android:versionCode="1"
android:versionName="1.0" &
android:minSdkVersion="4" /&
android:name="android.permission.INTERNET" /&
android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&
android:name="android.permission.ACCESS_WIFI_STATE" /&
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /&
android:name="android.permission.ACCESS_NETWORK_STATE" /&
android:name="android.permission.READ_PHONE_STATE" /&
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" &
android:name="com.wx.app.AppsActivity"
android:label="@string/app_name" &
android:name="android.intent.action.MAIN" /&
android:name="android.intent.category.LAUNCHER" /&
android:name="com.wx.app.wxapi.WXEntryActivity"
android:configChanges="orientation|keyboardHidden"
android:exported="true"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent" &
android:name="android.intent.action.VIEW" /&
android:name="android.intent.category.LAUNCHER" /&
最后把apk打包到手机,用微信官方生成签名的apk进行生成签名,把签名填写到微信的开放平台上。
服务前端的处理:
2. 通过code参数加上AppID和AppSecret等,通过API换取access_token:
StringBuffer buffer = new StringBuffer();buffer.append(““+ APPID);
buffer.append(“&secret=” + SECRET);
buffer.append(“&code=” + code);
buffer.append(“&grant_type=authorization_code”);
String uri = buffer.toString();
logger.info(“uri:” + uri);
return httpGet(uri);
3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。
JSONObject jobj = JSONObject.parseObject(accessText)
if (jobj.containsKey("access_token")) {
String accessToken = jobj.getString("access_token")
String wxOpenId = jobj.getString("openid")
StringBuffer buffer = new StringBuffer()
buffer.append("https://api.weixin.qq.com/sns/userinfo?access_token="+ accessToken)
buffer.append("&openid=" + wxOpenId)
String uri = buffer.toString()
String resText = httpGet(uri)
JSONObject obj = JSONObject.parseObject(resText)
if (obj.containsKey("openid")) {
WxMpUser user = new WxMpUser()
user.setOpenId(obj.getString("openid"))
user.setNickname(obj.getString("nickname"))
user.setSex(obj.getString("sex"))
user.setProvince(obj.getString("province"))
user.setCity(obj.getString("city"))
user.setCountry(obj.getString("country"))
user.setHeadImgUrl(obj.getString("headimgurl"))
user.setUnionId(obj.getString("unionid"))
return user
return null
return null
在这里有个demo可以贡献大家,服务器端没有提供demo地址:
调用微信OAuth2.0网页授权接口实现用户信息的绑定
Android:微信授权登录与微信分享全解析
第三方App接入微信登录
使用Oauth构建webapp应用
腾讯QQ、新浪微博第三方登录接口申请说明
没有更多推荐了,用微信分身封号是怎么回事 用第三方微信双开软件会被封号是真的吗_腾牛网
专业的QQ下载站 本站非腾讯QQ官方网站
用微信分身封号是怎么回事 用第三方微信双开软件会被封号是真的吗
经常听到有人说微信被封号,但是不知道原因,最近微信官方开始针对使用第三方软件登录的部分用户做出封号处理,快去看看你的微信还在吗!?用第三方微信双开软件会被封号是真的吗最近不少用户在微博反馈吐槽,自己的微信账号被微信官方给封了。据悉,微信此次封号,主要针对使用第三方软件登录的用户,被封用户基本都使用了微信“分身”软件。有网友吐槽:“被封号了才知道微信是我的全部。”微信中心给出的封号理由是:该微信账号因使用非官方微信客户端被限制登录,若后续仍继续使用将永久限制登录。拒绝访问 | www.91join.com | 百度云加速
请打开cookies.
此网站 (www.91join.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(e643a1-ua98).
重新安装浏览器,或使用别的浏览器请问微信如何取消对第三方应用的授权登录_百度知道
请问微信如何取消对第三方应用的授权登录
我以前取消了隐私当中的授权还有爱奇艺这三个软件的授权没法取消请问应该怎么办啊...
我以前取消了隐私当中的授权还有爱奇艺这三个软件的授权没法取消 请问应该怎么办啊
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
鑫旺欣手机先生
来自电子数码类芝麻团
鑫旺欣手机先生
采纳数:182
获赞数:97
参与团队:
您好!有可能是后面又授权了,您要取消第三方登入授权请按以下方式:进入微信首页,点击我的,在我的界面点击设置选项卡-在设置界面 选择隐私选项卡进入-在隐私界面最下个找到授权管理-可以看到你的微信授权列表,点击右上角的管理按钮-点击你要取消授权app前面的-点击相应app后面的删除按钮,对第三方的授权就取消了。
1进入微信首页2 点击我的在我的界面点击设置选项卡3在设置界面 选择隐私选项卡进入4在隐私界面最下个找到授权管理可以看到你的微信授权列表5点击右上角的管理按钮点击相应app后面的删除按钮,对第三方的授权就取消了
隐私里面已经取消了授权 注销账号的时候还剩三个软件 不知道该如何取消授权
你去登录这几个APP.一般在设置里面.找到取消授权之类的。而且需要退出微信登录
来自电脑网络类芝麻团
采纳数:34
获赞数:115
参与团队:
登陆你的微信公众号,取消授权!
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。如今,活跃在各大应用市场的APP数不胜数,且五花八门。相比早期的APP基本都需要注册后方能使用,现在的很多APP纷纷用上了QQ、微信、微博等第三方登录方式,为用户跳过注册环节从而省去了很多麻烦。然而,在使用QQ、微信、微博等方式登录这些APP时,有不少用户也遇到了隐私泄露等问题。■图片来源:朱影影信息安全专家表示,事实上,使用QQ、微信、微博等方式登录某些APP,在一定程度上反而能为用户减少个人信息泄露的风险。至于这些APP到底会不会泄露用户的隐私信息,还取决于QQ、微信、微博等平台为它们开放哪些信息获取权限。专家也提醒用户:为了降低个人信息泄露的风险,用户应尽量减少个人信息暴露渠道,警惕将好友关系、手机号、身份证号等敏感信息交给APP。大半APP都接入第三方登录方式近日,有媒体报道称,美团旗下的大众点评大张旗鼓地号召用户使用微信登录,然而,用户一旦使用微信登录后,平台就会将自己对酒店、餐厅的签到信息、关注信息、点赞信息或自己的地址信息分享给微信好友。不仅如此,系统还会为用户自动打包关注好友,但用户要取消关注时却只能自己一个个取消。该报道涉及的隐私安全等问题引起了不少网友的关注,随后,大众点评方面也做出了回应,在向用户道歉的基础上承诺将着手对产品进行多方面的整改升级,例如新增“一键停用第三方全部社交关系”功能等。事实上,现在的很多APP都开辟了QQ、微信、微博等第三方登录方式,让用户不必注册也能快速登录使用。记者在安卓应用市场随机下载了十几个安装量均在1000万以上的APP,其中只有几个APP是必须通过手机号或邮箱账号进行注册后方能登陆,另外一大半则都可以通过QQ、微信、微博等方式直接登录(一些APP既能选择注册后登录,也能通过QQ、微信、微博等方式直接登录)。■图片来源:朱影影在使用QQ、微信、微博等第三方登录方式直接登录APP时,APP会提示用户其将获取哪些权限。例如通过QQ登陆某款APP会提示“访问你的基础资料”、“发表分享到QQ空间”以及“关注该网站认证空间”,又如通过微信登陆某款APP会提示“获得你的公开信息(昵称、头像等)”以及“寻找与你共同使用该应用的好友”,而通过微博登录某款APP则会提示“将访问你的公开资料、好友信息”以及“关注该APP的微博”。不过,有很大一部分网友都表示,即使APP有获取权限的相关提示,他们也基本不会去留意。他们觉得自己的隐私很安全。APP借第三方登录的“方便”来拿下用户那么,究竟为什么会有这么多APP都接入了QQ、微信、微博等第三方登录方式呢?一位业内人士分析称,由于QQ、微信、微博等社交平台本身较为普及,可以方便很多APP在大流量渠道中进行传播,再加上其对于用户好友关系链的打造已经十分成熟,有利于让这些APP通过社交推荐及分享的方式获取更多用户,促使很多APP都接入了通过这些平台账号一键登录的功能。■图片来源:朱影影“说到底还是方便。不仅是方便用户,更是方便运营者借此来获取并留住更多用户。首先,用QQ、微信、微博等方式直接登陆,为用户免去注册环节,这样做能够提升用户的体验度从而避免用户在登录前就已流失。其次,借助QQ、微信、微博等账号中已有的好友关系,用户进入APP后马上就能找到熟悉的人,对于留住用户也有很大的帮助。第三,大多数APP都可以通过QQ、微信、微博的头像、昵称、所在地区等信息,获取用户画像,揣摩用户喜好,并以此为根据向用户推送内容,从而增加用户对其产品的粘度。”■图片来源:同时该业内人士也表示,不同定位的APP对于QQ、微信、微博等第三方登录方式的使用程度也有所不同。一般而言,对于工具类、游戏类、内容类等APP,注重的是工具的使用、内容的提供,确实适合把第三方登录方式放在优先位置,甚至只提供第三方登录就行。而对于电商类APP,由于其注重的是账号体系的建立以及用户后续的营销,因此注册后登录仍是其向用户首推的方式,第三方登录最多只作为补充。而对于支付类、金融类等APP,强调安全性、强调隐私性,一般不提供第三方登录。好友关系被获取,行为隐私难保障一位信息安全专家表示,事实上,使用QQ、微信、微博等方式登录某些APP,不需要创建新的用户名及密码,这在一定程度上反而能为用户减少信息泄露的风险,至少可以减少自己的其他账户被人以“撞库”方式攻破的风险。至于这些APP到底会不会泄露用户的隐私信息,还取决于QQ、微信、微博等平台为它们开放哪些信息获取权限。“常见的权限就是用户QQ、微信、微博的头像、昵称和好友关系。但也有一些APP会向平台方要求获取用户更隐私的信息,例如手机号,微信号,身份证号等内容,这时候如果平台方将权限开放的话,就可能造成更多的隐私泄露。”值得一提的是,该信息安全专家还特别强调了个人行为隐私保护的问题,包括对个人的学习、生活、工作痕迹的保护。他指出,就行为隐私而言,第三方登录的确会让用户的信息更易泄露,如果用户轻易将自己的好友关系交给某些APP,特别是一些来路不明的APP,那么其行为隐私的安全性就很难保障了。事实上,除了大众点评,其他APP如果能够获取到用户的好友关系,例如微信好友关系,同样可以结合自身平台的大数据内容,把用户行为分享给他们的好友。“举个例子,假如你的微信好友里有两位明星,他们正处于地下恋情,两位明星都和你一样在用微信登录并使用某款生活类APP,有一天这款APP分别向你发来信息,告诉你这两位明星近日都曾在同一家餐厅吃过饭,或者都曾在同一家酒店留过宿,那么你就很可能从中推测出这两位明星的恋情信息。这都是因为APP获取了你们的好友权限。”同时,该信息安全专家还指出,导致个人行为隐私泄露的原因,除了轻易把好友关系交给APP,还有轻易把手机的定位权限交给APP。因为一些APP一旦有了用户手机的定位权限,就能对用户的各种活动轨迹了如指掌。而如果这些APP居心不良,用户在其上产生的行为隐私信息就可能被其擅自分享给好友,又或者APP对信息的保护能力不足,这些隐私信息甚至可能被黑客盗用。专家:用户应谨慎把自己的敏感信息交给APP漏洞银行首席技术官张雪松表示,从信息安全的角度看,当用户将自己的个人信息放到互联网上时,就必定存在泄漏的风险。不过,正如一些网友表现出的那样,很多隐私泄露事件的发生,都是因为用户对个人信息保护的不够重视,例如:在使用某些APP时随意向其开放各种权限,随意把个人信息交给来路不明的APP等。张雪松提醒:为了降低个人信息泄露的风险,用户应尽量减少个人信息暴露渠道,比如某些APP在让用户使用QQ、微信、微博登录后,还要求用户绑定手机号,将手机号与QQ、微信、微博的账号进行对应,面对这种情况,用户应该减少个人信息暴露量,比如只使用手机号登录,避免让这些APP获取好友关系等深层次内容。“也就是说,用户应仔细确认所使用的APP到底要从QQ、微信、微博等平台获取什么权限,如果要获取好友关系、手机号、身份证号等敏感信息,则最好使用其他方式登录。此外,对于互联网行为,用户可使用个人信息分级的方式,如果面临必须留下联系电话、邮箱等情况,可以通过使用副卡、新邮箱等方式,与个人真实身份做隔离。除了用户层面的防范与保护外,信息安全专家还指出,APP运营者也应该积极承担起保护用户信息安全的责任。就目前的情况而言,各种APP的开发与运营还处于出一种野蛮生长的状态,这也导致一些APP罔顾用户利益,擅自使用用户信息来帮助实现自身的推广、经营等行为。对于这些APP,一方面是用信用评价机制包括用户评分机制等手段把它们从市场上淘汰出去;另一方面,还是得依靠网络监管部门对市场上的APP进行全方位的的监督管理,严厉打击侵犯用户隐私等行为。
免责声明:本文来自腾讯新闻客户端自媒体,不代表腾讯新闻、腾讯网的观点和立场。
Copyright & 1998 - 2018 Tencent. All Rights Reserved}

我要回帖

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

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信