SSO名词解释 : SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
例如用户已经登录新浪微博客户端,使用SSO授权登录时则不需要用户手动输入用户名、密码,直接点击登录即可, 因此可成为免登录.

注意:SSO授权只针对授权过程,后续的分享仍然通过网页分享,不通过客户端完成分享流程

转载请注明出处:http://blog.csdn.net/lindonglian

注册应用

实现SSO授权必须自己在第三方平台注册应用,获取appkey及secret

配置SSO授权回调

如果有使用任一平台的SSO授权或者集成了facebook平台, 则必须在对应的activity中实现onActivityResult方法, 并添加如下代码

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);/**使用SSO授权必须添加如下代码 */UMSsoHandler ssoHandler = mController.getConfig().getSsoHandler(requestCode) ;if(ssoHandler != null){ssoHandler.authorizeCallBack(requestCode, resultCode, data);}
}

分享到微信和朋友圈

添加微信和朋友圈所依赖的jar文件
1.解压已下载的zip文件,将platforms/weixin/libs目录中SocialSDK_WeiXin_1.jar,SocialSDK_WeiXin_2.jar拷贝到工程的libs(如果没有此目录,新建libs目录)目录中。
2.在libs目录中找到SocialSDK_WeiXin_1.jar,SocialSDK_WeiXin_2.jar文件,鼠标右键-->Add to Build Path。
3 将解压目录中platforms/weixin/res拷贝至你工程的res目录。

添加如下集成代码


String appID = "wx967daebe835fbeac";
String appSecret = "5fa9e68ca3970e87a1f83e563c8dcbce";
// 添加微信平台
UMWXHandler wxHandler = new UMWXHandler(getActivity(),appId,appSecret);
wxHandler.addToSocialSDK();
// 添加微信朋友圈
UMWXHandler wxCircleHandler = new UMWXHandler(getActivity(),appId,appSecret);
wxCircleHandler.setToCircle(true);
wxCircleHandler.addToSocialSDK();

微信和朋友圈支持纯文字,纯图片(点击查看大图),图文,音乐,视频分享。
注意 
此版本兼容了微信支付的功能,请更新SocialSDK_WeiXin_1.jar文件。

微信和微信朋友圈的回调

如果在您的项目中集成了微信或者微信朋友圈,并且您需要准确的分享回调,则需要在AndroidManifest.xml中下注册下面的回调Activity。 直接复制到Android manifest XML 即可,不需要进行修改

<activityandroid:name=".wxapi.WXEntryActivity"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:screenOrientation="portrait" />

然后将SDK包中platforms/weixin目录下的wxapi文件夹拷贝到您的工程的包目录下, 然后修改WXEntryActivity的完整路径即可。
例如social_sdk_example的包名为com.umeng.soexample,因此将wxapi文件夹拷贝到com.umeng.soexample下,最终WXEntryActivity的 完整路径为com.umeng.soexample.wxapi.WXEntryActivity。

注册微信回调代码:

mSnsPostListener  = new SnsPostListener() {@Overridepublic void onStart() {}@Overridepublic void onComplete(SHARE_MEDIA platform, int stCode, SocializeEntity entity) {if (stCode == 200) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_SHORT).show();} else {Toast.makeText(MainActivity.this,"分享失败 : error code : " + stCode, Toast.LENGTH_SHORT).show();}}};
mController.registerListener(mSnsPostListener);

其中分享的回调接口SnsPostListener的onComplete方法的第二个参数代表分享的状态码,当值为200时表示分享成功;其余的值则为分享失败。

微信集成相关说明

微信集成注意以下几点

  • 正确填写AppID。
  • 工程的包名必须同申请应用的包名一致。
  • 在微信开放平台填写你App的的签名,测试、发布时要保证App的签名跟微信开放平台的签名一致。
  • 开发者的应用需要通过审核。开发者在申请应用必须要通过微信官网的审核才能进行调试。

Demo中集成的微信无法使用?

原因:Demo中使用的微信AppID绑定的签名信息和你打包时所用的签名信息不一致,导致无法响应. 解决办法有两个,您任选其一:

  • 申请一个测试Demo中AppID.(申请地址).
    填写"包名"时请使用Demo的包名"com.umeng.soexample".
    填写"签名"使用签名生成工具(签名工具)生成,签名时填写Demo的包名.
    获取微信AppID后替换Demo中的使用的AppID.

  • 使用SDK中的 debug.keystore编译运行Demo工程.

注册应用

这一步很麻烦

使用微信分享首先需要在微信开放平台申请, 按照要求填写应用信息,审核通过后获取到微信AppID,AppSecret

微信签名说明

由于微信的签名过程跟验证流程较多,出错的可能性较大,这里将对微信的签名过程跟验证做详细的说明。

获取签名文件

获取应用签名方式有两种

方式一:
1:用eclipse导出 带签名 的apk文件,注意此时选择的签名文件是你发布app时的签名文件。在导出的最后一步,eclipse会显示一个Certificate fingerprints(证书指纹),如下图。此时找到MD5值,将该MD5值复制出来,按照“ 去掉冒号(:),大写转小写 ”的规则装换,此时字符串就是签名。

方式二:
导出 带签名 的apk文件,将该apk文件安装至手机中。安装微信的签名工具,打开GenSignature应用程序,填写你App的包名,点击“Get Signature”即可得到签名。

 
通过微信签名工具获取签名

请在微信开放平台申请应用

填写App的相关信息,注意确保包名跟签名填写正确,填写完成提交微信审核。

微信集成测试

在进行微信集成测试时,请填写你申请App的AppID。测试时需要导出带签名的apk文件测试,否则将不能正常分享。

如果直接使用demo源码进行编译,需要使用SDK包中附带的debug.keystore(keystore密码为android)进行编译,否则会由于签名验证不一致导致微信分享功能异常,并且由于demo工程提供的微信APPID不具备微信登录权限,因此无法进行微信登录功能测试

微信分享功能使用了微信原生的jar包,如果你的应用中也引用了微信原生SDK,会出现jar冲突Unable to execute dex: Multiple dex files define

添加微信到分享列表

// wx967daebe835fbeac是你在微信开发平台注册应用的AppID, 这里需要替换成你注册的AppID
String appID = "wx967daebe835fbeac";
String appSecret = "5fa9e68ca3970e87a1f83e563c8dcbce";
// 添加微信平台
UMWXHandler wxHandler = new UMWXHandler(getActivity(),appId,appSecret);
wxHandler.addToSocialSDK();
// 支持微信朋友圈
UMWXHandler wxCircleHandler = new UMWXHandler(getActivity(),appId,appSecret);
wxCircleHandler.setToCircle(true);
wxCircleHandler.addToSocialSDK();

注意以上代码必须在弹出分享面板前调用,否则第一次分享时面板中无法出现微信及朋友圈图标

设置分享内容

//设置微信好友分享内容
WeiXinShareContent weixinContent = new WeiXinShareContent();
//设置分享文字
weixinContent.setShareContent("来自友盟社会化组件(SDK)让移动应用快速整合社交分享功能,微信");
//设置title
weixinContent.setTitle("友盟社会化分享组件-微信");
//设置分享内容跳转URL
weixinContent.setTargetUrl("你的URL链接");
//设置分享图片
weixinContent.setShareImage(localImage);
mController.setShareMedia(weixinContent);

//设置微信朋友圈分享内容
CircleShareContent circleMedia = new CircleShareContent();
circleMedia.setShareContent("来自友盟社会化组件(SDK)让移动应用快速整合社交分享功能,朋友圈");
//设置朋友圈title
circleMedia.setTitle("友盟社会化分享组件-朋友圈");
circleMedia.setShareImage(localImage);
circleMedia.setTargetUrl("你的URL链接");
mController.setShareMedia(circleMedia);

接口说明:

  • 微信分享必须设置targetURL,需要为http链接格式
  • 微信朋友圈只能显示title,并且过长会被微信截取部分内容

设置分享消息类型

微信分享支持图文分享、纯图片及纯文字分享,其中图文分享点击会跳转到设置的URL,纯图片分享可以点击查看大图

图文分享方法参考上文,纯图片分享方法只需要去掉文本内容设置即可,代码如下:

//设置微信好友分享内容
WeiXinShareContent weixinContent = new WeiXinShareContent();
//设置title
weixinContent.setTitle("友盟社会化分享组件-微信");
//设置分享内容跳转URL
weixinContent.setTargetUrl("你的URL链接");
//设置分享图片
weixinContent.setShareImage(localImage);
mController.setShareMedia(weixinContent);

//设置微信朋友圈分享内容
CircleShareContent circleMedia = new CircleShareContent();
circleMedia.setShareImage(localImage);
circleMedia.setTargetUrl("你的URL链接");
mController.setShareMedia(circleMedia);

纯文本分享方法与纯图片类似,去掉分享图片即可

分享到微信朋友圈将平台参数替换即可

mController.postShare(mContext,SHARE_MEDIA.WEIXIN_CIRCLE, new SnsPostListener() ;

分享给QQ好友

在腾讯开放平台(http://open.qq.com/) 注册自己的应用,按照QQ官方要求填写,获取APPID及appkey,并且将APPID及appkey绑定在友盟主站后台, 同时注意在应用审核通过前必须添加测试账号,否则会出现110406报错。

添加QQ分享所依赖的jar文件

  1. 解压已下载的zip文件,将platforms/qq_zone/libs目录中SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar拷贝到工程的libs(如果没有此目录,新建libs目录)目录中。

  2. 在libs目录中找到SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar文件,鼠标右键-->Add to Build Path。

  3. 将解压目录中platforms/qq_zone/res文件拷贝至你工程res目录。

  4. 在AndroidManifest.xml中注册AuthActivity,QQ空间和QQ共用该授权Activity,具体配置参考上文的AndroidManifest.xml文件。

添加如下集成代码

//参数1为当前Activity,参数2为开发者在QQ互联申请的APP ID,参数3为开发者在QQ互联申请的APP kEY.
UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(getActivity(), "100424468","c7394704798a158208a74ab60104f0ba");
qqSsoHandler.addToSocialSDK();

注意:

1.此版本集成了QQ的最新jar文件,请更新SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar文件.

2.QQ分享内容为音乐,视频的时候,其形式必须为url;图片支持url和本地图片类型.

3.QQ SSO授权不会在onActivityResult方法内被调用。

4.未安装手机QQ客户端的情况下,QQ不支持纯图片分享.

5.未安装手机QQ客户端的情况下,QQ取消授权不执行相关回调。

6.QQ和QQ空间授权,对于同一个应用同一个账号返回的uid,openid相同。

SSO(免登录)分享到QQ空间

添加QQ空间所依赖的jar文件跟资源文件

如果已经添加了SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar文件,则不需要再次添加。

1.1 解压已下载的zip文件,将platforms/qq_qzone/libs中 SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3. jar拷贝到工程的libs(如果没有此目录,新建libs目录)目录中。

1.2 在libs目录中找到SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar文件,鼠标右键-->Add to Build Path。

1.3 将解压目录中platforms/qq_zone/res文件拷贝至你工程res目录。

1.4 在AndroidManifest.xml中注册AuthActivity,QQ空间和QQ共用该授权Activity,具体配置参考上文的AndroidManifest.xml文件。

在集成代码中添加如下代码

//参数1为当前Activity,参数2为开发者在QQ互联申请的APP ID,参数3为开发者在QQ互联申请的APP kEY.
QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(getActivity(), "100424468","c7394704798a158208a74ab60104f0ba");
qZoneSsoHandler.addToSocialSDK();

注意:

1.本次集成了QZone的最新jar包,升级时请注意更新SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar文件。
2.在进行QZone SSO授权时,请在AndroidManifest.xml中配置相应的Activity。具体参加上文AndroidManifest.xml文件配置。
3.QZone不支持纯图片分享。
4.无手机QQ客户端的情况下,QQ取消授权不执行相关回调。
5.QQ和QQ空间授权,对于同一个应用同一个账号返回的uid,openid相同。

设置分享内容

设置QQ分享文字及图片

设置QQ分享内容

QQ支持分享文字、图片、网页形式以及视频音乐等多媒体资源,但是分享音乐等多媒体资源必须要跳转到网页,然后点击播放。

设置QQ分享内容使用下面的代码:

QQShareContent qqShareContent = new QQShareContent();
//设置分享文字
qqShareContent.setShareContent("来自友盟社会化组件(SDK)让移动应用快速整合社交分享功能 -- QQ");
//设置分享title
qqShareContent.setTitle("hello, title");
//设置分享图片
qqShareContent.setShareImage(new UMImage(getActivity(), R.drawable.icon));
//设置点击分享内容的跳转链接
qqShareContent.setTargetUrl("你的URL链接");
mController.setShareMedia(qqShareContent);

设置Qzone分享文字及内容

设置Qzone分享内容

Qzone分享只支持图文形式分享,并且点击图文消息会跳转到预设的链接,图文分享只展示缩略图,**无法查看大图**

设置Qzone分享内容使用下面的代码:

QZoneShareContent qzone = new QZoneShareContent();
//设置分享文字
qzone.setShareContent("来自友盟社会化组件(SDK)让移动应用快速整合社交分享功能 -- QZone");
//设置点击消息的跳转URL
qzone.setTargetUrl("你的URL链接");
//设置分享内容的标题
qzone.setTitle("QZone title");
//设置分享图片
qzone.setShareImage(urlImage);
mController.setShareMedia(qzone);

设置QQ分享消息类型

QQ好友分享支持纯文字、纯图片、图文分享及音乐等多媒体资源,其中 图文分享点击会跳转到预设URL,无法查看大图 ,需要点击查看大图需要设置为纯图片类型,方法如下:

QQShareContent qqShareContent = new QQShareContent();
//设置分享title
qqShareContent.setTitle("hello, title");
//设置分享图片
qqShareContent.setShareImage(new UMImage(getActivity(), R.drawable.icon));
//设置点击分享内容的跳转链接
qqShareContent.setTargetUrl("你的URL链接");
mController.setShareMedia(qqShareContent);

使用纯图片分享必须使用本地图片,不可以使用URL网络图片

分享到Qzone的方法和QQ方法相同,只需将参数名替换为Qzone即可

mController.postShare(mContext,SHARE_MEDIA.QZONE, new SnsPostListener() {

使用友盟默认的分享面板,只需在分享按钮中添加如下代码:

mController.openShare(getActivity(), false);

自定义分享面板主要针对希望自定义分享列表选择界面的开发者,开发者需要自行实现分享列表的选择页,在分享到QQ的按钮中实现下面的方法:

mController.postShare(mContext,SHARE_MEDIA.QQ, new SnsPostListener() {@Overridepublic void onStart() {Toast.makeText(mContext, "开始分享.", Toast.LENGTH_SHORT).show();}@Overridepublic void onComplete(SHARE_MEDIA platform, int eCode,SocializeEntity entity) {if (eCode == 200) {Toast.makeText(mContext, "分享成功.", Toast.LENGTH_SHORT).show();} else {String eMsg = "";if (eCode == -101){eMsg = "没有授权";}Toast.makeText(mContext, "分享失败[" + eCode + "] " + eMsg,Toast.LENGTH_SHORT).show();}}
});

分享到Qzone的方法和QQ方法相同,只需将参数名替换为Qzone即可

mController.postShare(mContext,SHARE_MEDIA.QZONE, new SnsPostListener() {

在Android manifest XML中直接复制下面的代码:

<!-- ############ QQ空间和QQ SSO授权的Activity注册 ############ --><activityandroid:name="com.tencent.tauth.AuthActivity"android:launchMode="singleTask"android:noHistory="true" ><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="tencent你的QQ互联APPID" /> </intent-filter></activity><activity android:name="com.tencent.connect.common.AssistActivity"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:screenOrientation="portrait"></activity>
<!-- QQ、QQ空间所需权限 -->
<uses-permission android:name="android.permission.GET_TASKS" />

添加QQ及QQ空间到分享列表中

添加QQ在分享列表页中

//参数1为当前Activity, 参数2为开发者在QQ互联申请的APP ID,参数3为开发者在QQ互联申请的APP kEY.
UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(getActivity(), "100424468","c7394704798a158208a74ab60104f0ba");
qqSsoHandler.addToSocialSDK();

添加Qzone在分享列表页中

//参数1为当前Activity, 参数2为开发者在QQ互联申请的APP ID,参数3为开发者在QQ互联申请的APP kEY.
QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(getActivity(), "100424468","c7394704798a158208a74ab60104f0ba");
qZoneSsoHandler.addToSocialSDK();

集成注意

  • 使用QQ及QQ空间分享,将代码中的APPID及appkey全部替换为自己在QQ互联申请获取的APPID及appkey,否则分享完成后可能无法返回自己的应用,或弹出选择应用对话框

为了保证引用友盟Social SDK jar文件以及腾讯jar文件被混淆,请在proguard.cfg文件中添加以下代码避免被混淆.


-dontshrink
-dontoptimize
-dontwarn com.google.android.maps.**
-dontwarn android.webkit.WebView
-dontwarn com.umeng.**
-dontwarn com.tencent.weibo.sdk.**
-dontwarn com.facebook.**-libraryjars libs/SocialSDK_QQZone_2.jar-keep enum com.facebook.**
-keepattributes Exceptions,InnerClasses,Signature
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable-keep public interface com.facebook.**
-keep public interface com.tencent.**
-keep public interface com.umeng.socialize.**
-keep public interface com.umeng.socialize.sensor.**
-keep public interface com.umeng.scrshot.**-keep public class com.umeng.socialize.* {*;}
-keep public class javax.**
-keep public class android.webkit.**-keep class com.facebook.**
-keep class com.umeng.scrshot.**
-keep public class com.tencent.** {*;}
-keep class com.umeng.socialize.sensor.**-keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage {*;}-keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;}-keep class im.yixin.sdk.api.YXMessage {*;}
-keep class im.yixin.sdk.api.** implements im.yixin.sdk.api.YXMessage$YXMessageData{*;}-keep public class [your_pkg].R$*{public static final int *;
}

SSO(免登录)分享到新浪微博

注意一定保证在新浪微博上填写应用签名,参考文档

添加SSO必须的文件

将platforms/sina/libs中的SocialSDK_Sina.jar添加到工程libs中并将该jar加入到build path中, 由于4.2版本将remoteSSO文件打入SocialSDK_Sina.jar中,因此老版本升级过程中需要删除旧版本中的remoteSSO文件,否则会出现文件冲突

在代码中添加如下代码

//设置新浪SSO handler
mController.getConfig().setSsoHandler(new SinaSsoHandler());

SSO(免登录)分享到腾讯微博

添加腾讯微博SSO所依赖的jar文件
1.解压已下载的zip文件,将platforms/tencentweibo/libs中SocialSDK_tencentWB_1.jar,SocialSDK_tencentWB_2.jar,,SocialSDK_tencentWB_3.jar拷贝到工程的libs(如果没有此目录,新建libs目录)目录中.
2.在libs目录中找到SocialSDK_tencentWB_1.jar,SocialSDK_tencentWB_2.jar,,SocialSDK_tencentWB_3.jar文件,鼠标右键-->Add to Build Path.

在集成代码中添加如下代码

//设置腾讯微博SSO handler
mController.getConfig().setSsoHandler(new TencentWBSsoHandler());

注意:

1.手机中必须安装微博客户端V3.8.1及以上的版本才支持SSO功能.
2.腾讯微博的SSO没有回调。由于腾讯微博SSO没有提供回调,因此腾讯微博SSO不会在onActivityResult方法内被调用(腾讯微博授权流程不经过onActivityResult方法).

腾讯微博分享:点击分享, 进入授权页面后始终出现redirect_uri与应用注册的网址不一致

在腾讯微博开放平台的应用网址栏中填写在友盟主站后台生成的封装链接,审核通过后生效
SSO(免登录)分享到人人

添加人人SSO所依赖的jar文件

1.解压已下载的zip文件,将platforms/renren/libs/SocialSDK_renren_1.jar,SocialSDK_renren_2.jar,拷贝到你工程libs目录中。
2.在libs工程找到SocialSDK_renren_1.jar,SocialSDK_renren_2.jar文件,鼠标右键-->Add to Build Path。

在集成代码中添加如下代码

//添加人人网SSO授权功能
//APPID:201874
//API Key:28401c0964f04a72a14c812d6132fcef
//Secret:3bf66e42db1e4fa9829b955cc300b737
RenrenSsoHandler renrenSsoHandler = new RenrenSsoHandler(getActivity(),"201874", "28401c0964f04a72a14c812d6132fcef","3bf66e42db1e4fa9829b955cc300b737");
mController.getConfig().setSsoHandler(renrenSsoHandler);

在SDK中的OAuth授权部分包含了Activity,为了程序能正常允许,请将以下Activity信息在您的应该工程Androidmanefest.xml中注册:

<activity android:name="com.renn.rennsdk.oauth.OAuthActivity"
android:configChanges="orientation|navigation|keyboardHidden"/>

然后添加如下权限 :

    <uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.SET_DEBUG_APP" /><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission android:name="android.permission.GET_ACCOUNTS" /><uses-permission android:name="android.permission.USE_CREDENTIALS" /><uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />

转载请注明出处:http://blog.csdn.net/lindonglian

注意

1.手机中必须安装人人客户端V5.9.3及以上的版本才支持SSO功能。
2.由于人人SSO没有提供回调,因此人人SSO不会在onActivityResult方法内被调用(人人SSO授权流程不经过onActivityResult方法)。

移动共享开发(二)各平台SSO(免登录)配置 微信和微信朋友圈、QQ、QQ空间、新浪微博、腾讯微博、人人相关推荐

  1. 不同平台使用不同技术实现微信好友、朋友圈分享汇总(H5、taro、uni-app)

    人生路漫漫,坑,是活久了见.程序猿世界里各种奇葩的需求都有,随之而来的各种坑也是层出不穷. 应前IBM同事邀请特来做分享的专题总结.一般人我不告诉他,刷到的朋友们就赚到了,你懂的~~~~~~收藏吧! ...

  2. 微信分享到朋友圈、发送给朋友开发注意事项

    1.invalid url domain 当前页面所在域名与使用的appid没有绑定,请确认正确填写绑定的域名,如果使用了端口号,则配置的绑定域名也要加上端口号(一个appid可以绑定三个有效域名,见 ...

  3. 微信js分享朋友圈(二)

    微信js分享朋友圈(二) 近期又用到微信分享的功能了.虽然不是第一次用了,依然我又有幸踩到了一个坑,所以分享一下吧. 根据微信sdk写的代码一步步很顺利,但是后面就是获取微信返回的分享结果的回调的时候 ...

  4. (八)java版spring cloud+spring boot+redis多租户社交电子商务平台 -SSO单点登录之OAuth2.0登录认证(2)...

    电子商务平台源码请加企鹅求求:一零三八七七四六二六.上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个 ...

  5. 基于saml2.0的平台(适用多种平台)单点登录配置,以okta为例

    目录 现状和问题 解决方案原理 基于saml2.0协议的Java实现 基于OKTA平台的实例演示 结论 题外话 现状和问题 事情的起因在于接到一个需求,要求在SAP的succesfactory中使用单 ...

  6. 面试阿里测试开发,面试结束后,还被面试官在朋友圈吐槽“什么阿猫阿狗都敢来面试大厂了吗?”

    前一阵子有个小徒弟向我诉苦,说自己在参加某大厂测试面试的时候被面试官怼得哑口无言,场面让他一度十分尴尬 印象最深的就是下面几个问题: 根据你以前的工作经验和学习到的测试技术,说说你对质量保证的理解? ...

  7. 前端开发第三方分享/登录功能备忘(facebook、weibo、QQ、weixin微信好友或者朋友圈)

    ##前端开发第三方分享[/三方登录]功能备忘(facebook脸书.Whatsapp.weibo.QQ.weixin好友或者朋友圈) 平台 支持域名 备案 切换域名调整 平台名称 注意事项

  8. iOS开发之第三方分享微信分享、朋友圈分享,史上最新最全第三方分享微信方式实现、朋友圈方式实现

    本文章项目demo地址: https://github.com/zhonggaorong/weixinLoginDemo 微信分享环境搭建参考(包含登录的源码):http://blog.csdn.ne ...

  9. 微信批量删除朋友圈脚本,使用auto.js编写的免root运行

    说明 本文提供的代码仅供参考.不建议用于生产环境. 可能有些地方在最新版本的Auto.js上面需要做修改,才能运行. Auto.js简介 Auto.js是利用安卓系统的"辅助功能" ...

最新文章

  1. 使用指针做函数返回值
  2. Python常见问题(5):Python扩展与嵌入 Extending/Embedding FAQ
  3. python numpy矩阵索引_python-为什么scipy csr矩阵的行索引比numpy数组...
  4. NEBULA超级计算机,科学网—中国“星云”或将称霸全球超级计算机500强
  5. 【ajax】Ajax $().load() 禁用缓存
  6. 小白入职AI数据工程师
  7. css实现动态阴影、蚀刻文本、渐变文本
  8. Sublime Text 3.1 编辑管理工程(项目)
  9. 高版本SDK编译生成的apk放入低版本android源码中集成编译
  10. R2统计学正确计算方法
  11. FAT16和FAT32文件系统的区别和对比
  12. MySql 递归应用
  13. 需要验证的网络连接服务器,登录iCloud提示验证失败,连接到服务器时出现问题怎么办...
  14. kotlin版贪吃蛇小游戏
  15. python遍历循环和无限循环结构_Python --- 程序的循环结构
  16. 曾风靡全球的 Delphi,要日薄西山了?
  17. 计算机进制转换小程序
  18. Vue第二天学习总结—— Vue全家桶之组件化开发(组件化开发思想、组件注册、Vue调试工具用法、组件间数据交互传递、组件插槽、基于组件的案例——购物车)
  19. 揭开卓越供应链的秘密,走近人机协同的智能决策
  20. 一些元器件的选用依据

热门文章

  1. SD-WAN大势已来,网银互联被低估了吗?
  2. 双截龙java游戏下载_双截龙合集游戏
  3. LK光流算法的matlab仿真与仿真
  4. git@gitlab invalid privatekey
  5. Praat脚本文件教程之Scripting1.Your first script
  6. Spring三十五问,四万字+五十图详解 建议收藏
  7. pcd点云地图转换为八叉树ot地图
  8. mysql5.1 emoji_技术|如何在 MySQL 中存储 emoji ?
  9. 大数据的“拦路虎”,信息孤岛能否解决?
  10. 微信中接收的word文件怎样保存到电脑