关于移动应用微信登录demo第三方登录

手机APP注册实名制实施 从第三方登录亦需实名|用户|APP|注册_新浪新闻
  原标题:APP老用户将逐步实名
  手机APP注册实名制8月起实施 通过第三方登录用户需实名
  记者 张璐
  本月1日起,手机APP推行实名制注册。不少网友发现,新用户注册APP确实要用手机号,但没实名的老用户仍然可以继续使用APP。对此,国家网信办回复北京晨报记者时表示,针对8月1日之前未进行真实身份信息认证的注册用户,网信办将督促移动互联网应用程序提供者落实管理责任,逐步实现基于移动电话号码等真实身份信息认证。通过微博、QQ等第三方登录的用户,也要落实实名制认证。
  网友安妮表示:“以往曾经看到不法分子在评论区发布虚假信息和卖淫嫖娼信息,我觉得APP实名注册后,网络环境会得到净化。”
  新用户:十几秒钟完成注册
  目前国内应用商店上架的APP超过400万款,且数量还在高速增长。国家网信办发布的《移动互联网应用程序信息服务管理规定》今年8月起施行,要求移动互联网应用程序(APP)按照“后台实名、前台自愿”的原则,对注册用户进行基于移动电话号码等真实身份信息认证。
  APP真的都落实了用户实名制规定吗?记者近几天下载了几款新的手机APP注册体验发现,注册均要求使用手机号,只要输入手机号,几秒钟就能收到验证码,输入验证码成功后再取一个用户名,不到20秒就能完成注册。
  在网友安妮看来,很多APP无需注册也可以使用,但注册可以使APP保留一些浏览记录,推送、分享和收藏自己感兴趣的内容,使用起来更方便。
  老用户:没实名还可以继续用
  “以为从今天起,手机得卸载一批APP呢,原来不实名也可以继续使用。”爱刷微博的白领兰兰没有通过绑定手机号等方式进行实名制注册,但她发现,8月1日以来,微博、QQ等APP还是可以继续使用。兰兰说,手机里的APP都是几年前下载的,通常用邮箱、用户名和密码注册并登录。
  实名制注册是不是只针对8月1日后注册的新用户呢?对此,国家网信办回复北京晨报记者称,日发布的《全国人民代表大会常务委员会关于加强网络信息保护的决定》要求,“网络服务提供者为用户办理网站接入服务等业务时,要求用户提供真实身份信息”。《移动互联网应用程序信息服务管理规定》依据《决定》等法律法规制定,不论是8月1日后注册的新用户,还是8月1日前注册的用户,均应落实基于移动电话号码等真实身份信息认证要求。
  权威回应
  8月前注册用户将逐步实名
  既然8月1日之前注册的用户也需要实名,为何未实名的老用户使用APP没有受到影响?对此,国家网信办回复北京晨报记者称,针对8月1日之前未进行真实身份信息认证的注册用户,网信办将结合实际情况,听取各方意见,按照稳妥有序、逐步规范的原则,督促移动互联网应用程序提供者落实管理责任,对8月1日之前注册的、未进行真实身份信息认证的用户,逐步实现基于移动电话号码等真实身份信息认证。
  记者在使用未实名注册的APP时也发现,一些APP会提示账号处在高危状态或存在安全风险,如果点击加强保护,APP就会要求用户通过输入手机号,回复短信验证来加强安全保护。
  第三方账号登录也需实名
  记者体验还发现,目前部分APP新用户,可以不通过新注册的方式登录,而是通过其他账号登录,比如今日头条、网易云音乐的新用户可以用QQ、微信、微博的账号进行登录,但是QQ、微博等账号也存在不实名的情况。新用户用其他未实名账号登录后,同样可以使用评论、转帖等功能。
  对于这类非注册登录,国家网信办是否有实名制的要求和举措?国家网信办表示,按照《移动互联网应用程序信息服务管理规定》,移动互联网应用程序提供者应对注册用户严格落实真实身份信息认证要求,对于通过第三方账号登录的用户,同样应当落实此项要求。
  实名制有利于用户主张其权利
  中国网络空间安全协会秘书长李欲晓告诉北京晨报记者,目前真实身份信息认证包括手机号、身份证、银行卡等认证方式。用户实名制后,APP提供者更应当健全用户信息安全保护机制。用户实名可以防止不法分子利用APP传播暴力恐怖、淫秽色情及谣言等违法违规信息。另外,如果APP提供的服务出现问题,用户需要进行赔偿时,实名制更有利于其主张权利,APP提供者不能以用户“匿名”为由不承担责任。
责任编辑:王浩成
美国干涉别国内政,早已司空见惯。但最近美国舆论大有担心俄罗斯干涉美国内政,这种担心有必要吗?
中广核出资达到了60亿英镑的欣克利角核电站协议,可能要泡汤了。这一次,中国又要被英国人给耍了
企业家在社会公益中已经成为一个最积极的角色,也成为促进社会进步的主力人群。
亨利·米勒一辈子思考、写作、嫖妓。他的元气,是由天才和欲望构成的,或许这二者本来就是同一事物的两面。在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
cookie 保存 seesionid 还是保存 oauth2 的 token ,该用那种比较好呢?
还有第三方登录的状态该怎么怎么保存呢?
现在第三方登录都是通过 token 来授权和续签保持登录状态的。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
这个好像也没有统一的标准,不过我一般的做法是,第三方登陆成功后,在客户端不再保留与第三方登陆相关的信息,而只保存本系统所产生的会话id,这样做至少可以保证,就算出现了安全问题,影响也只限于自家系统,不至于影响用户其它账号的安全性。
第三方系统登陆的状态,保存在服务器端,一般情况下,不建议客户端直接与每户三方系统交互,或者保存与第三方通信的token,因为客户端可以交互,意味着如果用其它方式拿到了客户端数据,则可以跨过本系统,直接获取第三方系统的数据——而且还是以本系统的名义。
涉及到第三方系统,务必考虑周道,记住,只保证你的系统的安全性是不够的,为用户考虑,不会错的。对于恶意的人来讲,你的系统的价值,可能根本比不上你系统中用户的价值。
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。安卓第三方登录之微信登录(图文详解) - 简书
安卓第三方登录之微信登录(图文详解)
一、创建应用并成为开发者
1、创建应用
1)到微信开放平台管理中心,点击“创建移动应用”
2)填写基本的应用信息
3)填写平台信息
这里还是说一下怎么获取应用签名吧:
到“资源中心”--&“资源下载”--&“Android资源下载”,找到“签名生成工具”下载即可。
将APP进行打包安装到手机(如果是在IDE中直接运行后安装的话,是使用debug签名的,跟上线后使用jks文件签名的不一样!!!)
给手机安装第一步中下载的签名工具,打开后输入APP的包名(包名是AndroidManifest.xml中package的值),点击生成,就可以看到应用签名了。
签名工具得到的签名根你APP的打包步骤有关,默认的debug和jks文件签名,结果是不一样,如果app签名与微信开放平台的不一样,将无法调出微信登录界面!!!
4)最后提交,等待审核。(说是7天,一般1天后就审核通过了)
2、成为开发者
很简单,去“个人中心”,找到“开发者资质认证”,点击“申请”,然后一步步按要示填写信息,最后交钱就行,300大洋~~
二、微信登录
当审核通过之后,就可以开始使用微信开放平台提供的功能了。要使用“微信登录”功能必须成功开放者,也就是交了300块后默认开通此功能。
在这里可以得到AppId和AppSecret,记下,之后会用到。如下图所示:
1、引入微信SDK依赖
1)Android Studio:
在build.gradle的dependencies中加入以下语句
compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:1.0.2'
2)Eclipse(ADT):
去微信开放平台,“资源中心”--&“资源下载”--&“Android资源下载”,找到“开发工具包(SDK)”后下载。。
解压后找到lib文件夹,把wechat-sdk-android-with-mta-1.0.2.jar和wechat-sdk-android-without-mta-1.0.2.jar复制到工程lib文件夹下,rebuild一下。
2、申明应用权限
&uses-permission android:name="android.permission.INTERNET"/&
&uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/&
&uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/&
&uses-permission android:name="android.permission.READ_PHONE_STATE"/&
&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/&
3、向微信注册APP
在自定义的Application的onCreate中调用registToWX方法:
public void onCreate() {
super.onCreate();
registToWX();
private void registToWX() {
//AppConst.WEIXIN.APP_ID是指你应用在微信开放平台上的AppID,记得替换。
mWxApi = WXAPIFactory.createWXAPI(this, AppConst.WEIXIN.APP_ID, false);
// 将该app注册到微信
mWxApi.registerApp(AppConst.WEIXIN.APP_ID);
4、调用微信登录界面
一般会在登录界面会有一个微信图标,对微信图标设置点击事件,调用如下方法:
public void wxLogin() {
if (!MyApp.mWxApi.isWXAppInstalled()) {
UIUtils.showToast("您还未安装微信客户端");
final SendAuth.Req req = new SendAuth.Req();
req.scope = "snsapi_userinfo";
req.state = "diandi_wx_login";
MyApp.mWxApi.sendReq(req);
至此,就可以调用微信登录界面来进行登录认证了。
5、创建WXEntryActivity.java微信接收响应
WXEntryActivity是一个Activity,用来接收微信的响应信息。这里有几个需要注意的地方:
它必须在"包名.wxapi"这个包下,如:你的应用包名为:com.lqr.test,则WXEntryActivity所在的包名必须为com.lqr.test.wxapi。
创建后在AndroidManifest.xml文件中对WXEntryActivity进行设置:android:exported="true"。
&activity android:name=".wxapi.WXEntryActivity" android:exported="true" /&
WXEntryActivity.Java继承自Activity,实现IWXAPIEventHandler接口,该接口即处理微信和app通信的不同event。
以下是一个示例:
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
private static final int RETURN_MSG_TYPE_LOGIN = 1;
private static final int RETURN_MSG_TYPE_SHARE = 2;
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//如果没回调onResp,八成是这句没有写
MyApp.mWxApi.handleIntent(getIntent(), this);
// 微信发送请求到第三方应用时,会回调到该方法
public void onReq(BaseReq req) {
// 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法
//app发送消息给微信,处理返回消息的回调
public void onResp(BaseResp resp) {
LogUtils.sf(resp.errStr);
LogUtils.sf("错误码 : " + resp.errCode + "");
switch (resp.errCode) {
case BaseResp.ErrCode.ERR_AUTH_DENIED:
case BaseResp.ErrCode.ERR_USER_CANCEL:
if (RETURN_MSG_TYPE_SHARE == resp.getType()) UIUtils.showToast("分享失败");
else UIUtils.showToast("登录失败");
case BaseResp.ErrCode.ERR_OK:
switch (resp.getType()) {
case RETURN_MSG_TYPE_LOGIN:
//拿到了微信返回的code,立马再去请求access_token
String code = ((SendAuth.Resp) resp).
LogUtils.sf("code = " + code);
//就在这个地方,用网络库什么的或者自己封的网络api,发请求去咯,注意是get请求
case RETURN_MSG_TYPE_SHARE:
UIUtils.showToast("微信分享成功");
当微信授权第三登录后,会自动调用WXEntryActivity的onResp方法,可以在((SendAuth.Resp) resp).code得到“授权临时票据code”,之后可以通过code参数加上AppID和AppSecret等,通过API换取access_token,再通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。
一般会把获取access_token步骤(包括之后的操作)放到服务器那边,服务器经过一番处理之后,返回用户信息给客户端。
三、踩坑经验
在app点击微信图标后,一片空白!!控制台打印错误码为-6。
这是因为app的使用的签名跟开放平台的应用签名不一致导致的。
解决方法:
使用签名工具得到手机中app的签名
修改开放平台上的应用签名
清除手机上微信APP的缓存信息(不知道的可以卸载后重装微信)
登录微信后,再点击APP的微信登录图标
我已加入“维权骑士”(rightknights.com)的版权保护计划。
CSDN:http://blog.csdn.net/csdn_lqr
github:https://github.com/GitLqr
掘金专栏:
https://juejin.im/user/58a53faf5c497d005fa78737
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 友盟自动更新 环信即时IM系统 极光推送 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&...
发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注
09:45字数 61697阅读 3316评论 2喜欢 85 用到的组件 1、通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FM...
写给 Android 开发者的混淆使用手册 - Android - 掘金本文转自:点击打开链接 毫无疑问,混淆是打包过程中最重要的流程之一,在没有特殊原因的情况下,所有 app 都应该开启混淆。 首先,这里说的的混淆其实是包括了代码压缩、代码混淆以及资源压缩等的优化过程。依...
荀子说,不能因为自己生气就对别人过分的处罚,高兴了就给别人特别的奖励。 很久以来,我想用简单的句子来总结我厌恶的然而却是我童年少年成长的这个家庭环境却找不到合适的词句。荀子的这句,就是了。 父母的情绪稳定是对孩子最好的家庭教育。这是我长大后学习到的一个我非常认同的道理。我有...
快乐和健康都是和自己相处的问题,而和谐就是和他人相处的问题了。 人是群居动物,所以必须面对如何与他人相处的问题。我们身边的人形形色色,都要与之和谐相处,确实是不容易的事情。我试着总结了三条,或许有些帮助。按照从低到高的层次分别是:包容、理解、欣赏。 第一层是包容。这是和谐相...
走走停停,总会有那一刻的风景定格在心间。 我喜欢这个季节,樱花飞舞。 恍若昨日走在樱花长廊上的惬意。 樱花季,我想和你一起走在那樱花长廊看樱花飞舞,看那宁静的湖面,天蓝的不像话。
今天补上:1、感恩大竹的姑姑每次都为爸爸办理工作上的一些手续,为我们减少来回奔波的烦恼,谢谢!2、感恩儿子最近几天每天都能很早完成作业,晚上一家人能很开心地聚在一起看看书,锻炼一下身体,谢谢!3、感恩坦坦给我们这个平台里好学的家长们,每天看你们的发言和读书,督促我要跟着你们...
最近看到一篇报道称:来自华尔街的调查显示信息:我国成为了游戏消费类的大国,引领世界前流;中国游戏消费的总额占世界游戏消费总额的三分之一,看到这则消息我感到震惊,如果人口的红利消失了,消费类游戏所占据我们的时间大部分,据相关的数据表明,App的所收...没有更多推荐了,
不良信息举报
举报内容:
第三方App接入微信登录 解读
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!亲爱的开发者朋友:我们很高兴和大家分享一个消息,团队正式启用Mob.com顶级域名,Mob即Mobile缩写,全面转型为移动
本帖最后由 JackSun 于
18:18 编辑
注意:QQ本身没有授权功能,所以想要使用QQ做第三方登录必须通过QQ空间来实现!
第一步:集成ShareSDK(步骤同集成分享的一样,如果已经集成过就不用再重新集成了),这里需要注意的是,由于是要通过QQ空间来实现授权登录,所以在下载ShareSDK包的时候别忘了勾选QQ空间,不然会报尚未导入平台(6)的错误。
第二步:打开工程中的*AppDelegate.m(*代表你的工程名字)?文件,导入QQSDK的头文件:
& && && && &#import &TencentOpenAPI/QQApiInterface.h&
& && && && &#import &TencentOpenAPI/TencentOAuth.h&
& && & 检查是否已加入handleOpenURL的处理方法,如果没有则添加如下代码:
- (BOOL)application: (UIApplication *)application&&handleOpenURL: (NSURL *)url
& & return [ShareSDK handleOpenURL:url
& && && && && && && && && & wxDelegate:
- (BOOL)application: (UIApplication *)application
& && && && && & openURL: (NSURL *)url
& && && && && & sourceApplication: (NSString *)sourceApplication
& && && && && & annotation: (id)annotation
& & return [ShareSDK handleOpenURL: url
& && && && && && & sourceApplication:sourceApplication
& && && && && && & annotation: annotation
& && && && && && & wxDelegate:
第三步: 加入QQ空间初始化方法
& &在*AppDelegate.m里面的
- (BOOL)application: (UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions{}方法中
//初始化我们的sdk
[ShareSDK &];
//添加QQ空间应用
[ShareSDK connectQZoneWithAppKey:@&&
& && && && && && && && && & appSecret:@&aed9be27bae87cd&
& && && && && && & qqApiInterfaceCls:[QQApiInterface class]
& && && && && && && &tencentOAuthCls:[TencentOAuth class];
注意:这里需要填入的AppKey就是您在QQ互联注册应用的AppID,appSecret就是AppKey!
第四步:配置QQ空间的URL Schemes
& & 打开*-Info.plist(*代表你的工程名字)。找到URL types配置项(如果没有则新增),展开URL types – URL Schemes,在URL Schemes下分别各新增一项用于QQ空间的Scheme(如果不添加则会导致法返回应用)。其填写格式为:tencent+appID(你在QQ空间中申请的AppId), 如:tencent。
第五步:授权登录并获取用户信息
& & 在您的点击事件方法中加入授权获取用户信息接口:
[ShareSDK getUserInfoWithType:ShareTypeQQSpace
& && && && && && && && && && && & authOptions:nil
& && && && && && && && && && && && && && && &result:^(BOOL result, id&ISSPlatformUser& userInfo, id&ICMErrorInfo& error) {
& && && && && && && && && && &
& && && && && && && && && && & if (result)
& && && && && && && && && && & {& && && && && && &
& && && && && && && && && && &//打印输出用户uid:& && && && && && && && && && && &
& && && && && && && && && && && &&&NSLog(@&uid = %@&,[userInfo uid]);
& && && && && && && && && &&&//打印输出用户昵称:
& && && && && && && && && && && &&&NSLog(@&name = %@&,[userInfo nickname]);
& && && && && && && && && & //打印输出用户头像地址:
& && && && && && && && && && && &&&NSLog(@&icon = %@&,[userInfo profileImage]);
& &&&NSLog(@&授权失败!error code == %d, error code == %@&, [error errorCode], [error errorDescription]);
注意:ShareTypeQQSpace这里一定是写QQSpace不能写QQ否则会报 不支持授权功能的错误。
& && && &&&这里只在result里面做了输出的操作 如果您想要做存储数据或者其它显示都可以在这里面操作!
已回复 QQ空间和QQ好友分享都必须跳转QQ客户端分享,不会跳转网页, 所以你不安装QQ客户端肯定报错 6004 尚未安装QQ客户端 分享失败!
你好,使用qq做第三方登录的,如果没有安装客户端会提示没有安装,qq,,,,那我可以不可以直接用网页来登录qq呢
我在BUG提交区提交了一个QQ空间授权、分享的问题,帮我看看吧
& & [ShareSDK getUserInfoWithType:ShareTypeQQSpace authOptions:nil result:^(BOOL result, id&ISSPlatformUser& userInfo, id&ICMErrorInfo& error) {
& && && && &if (result) {
15:20:49.331 memberCenter[0] #warning: 尚未导入平台类型:[QZoneConnection (6)]
15:20:50.328 memberCenter[0] #warning: 获取app配置信息失败: The network connection was lost.
15:20:52.001 memberCenter[0] #warning:平台[(null)(6)]尚未集成!
15:20:57.481 memberCenter[0] #warning:平台[(null)(6)]尚未集成!
15:20:57.483 memberCenter[0] #warning:平台[(null)(6)]尚未集成!
15:20:57.483 memberCenter[0] #warning:平台[(null)(6)]尚未集成!
15:20:57.483 memberCenter[0] 平台[(null)(6)]不支持授权功能!
15:20:49.331 memberCenter[0] #warning: 尚未导入平台类型:[QZoneConnection (6)]
15:20:50.328 memberCenter[0] #warning: 获取app配置信息失败: The network connection was lost.
15:20:52.001 memberCenter[0] #warning:平台[(null)(6)]尚未集成!
15:20:57.481 memberCenter[0] #warning:平台[(null)(6)]尚未集成!
15:20:57.483 memberCenter[0] #warning:平台[(null)(6)]尚未集成!
15:20:57.483 memberCenter[0] #warning:平台[(null)(6)]尚未集成!
15:20:57.483 memberCenter[0] 平台[(null)(6)]不支持授权功能!
亲 您下载我们SDK的时候选择QQ空间了没?选择的话 在AppDelegate.m一定要初始化QQ空间
已经解决了 谢谢!
#warning: 获取app配置信息失败: 未知错误
这个怎么解决
[ShareSDK registerApp: @&xxxxxxx&];& &
这句代码要写在所有初始化代码的最前面,而且里面填写的key 一定要是在我们官网添加应用得到的
免费咨询 | 24小时在线

我要回帖

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

 

随机推荐