第三方微信接入登录流程整理

uniapp 安卓app 调起微信app 授权登录 要在UniApp中实现调起微信授权登录,需要使用微信的SDK以及UniApp提供的插件功能。以下是实现步骤和示例代码,包含详细注释。 阅读详情

准备工作

1.在微信开放平台https://open.weixin.qq.com/注册成为开发者。

2.在“管理中心”中创建一个移动应用,需“应用名称、简介、及28*28和108*108的PNG图片各一张,且大小不超过300k”,点击下一步,需“应用官网地址,应用签名及包名”等信息,然后即可提交审核。 
说明: 
应用签名:可在微信开发平台的资源中心》》资源下载》》中下载“签名生成工具”,用户获取已经安装到手机的第三方应用的签名。输入应用包名,即可获得该应用的签名值。

3.提交审核后,在7个工作日内腾讯将给出审核结果。(通常较快,几个小时就可反馈结果)

微信登录接入

微信登录遵循协议Aouth2.0中的授权码模式

我们来看一下Aouth2.0中的授权码模式是怎么定义的:

授权码模式(authorization code)是功能最完整、流程最严密的授权模式。它的特点就是通过客户端的后台服务器,与”服务提供商”的认证服务器进行互动。 
它的步骤如下:

(A)用户访问客户端,后者将前者导向认证服务器。

(B)用户选择是否给予客户端授权。

(C)假设用户给予授权,认证服务器将用户导向客户端事先指定的”重定向URI”(redirection URI),同时附上一个授权码。

(D)客户端收到授权码,附上早先的”重定向URI”,向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。

(E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)

微信登录的官方文档将微信登录分为3个步骤:

第一步.请求code

 
  1. {

  2. // send oauth request

  3. Final SendAuth.Req req = new SendAuth.Req();

  4. req.scope = "snsapi_userinfo";

  5. req.state = "wechat_sdk_demo_test";

  6. api.sendReq(req);

  7. }

  8.  

 

用这段代码向微信开放平台请求授权码code,可拉起微信并打开授权登录页(前提是你安装了微信应用并已登录,未登录的会引导你先登录),如下图:

1.如果微信授权页不显示,请检查你的APP签名是否和你在腾讯开放平台的APP签名一致,不一致可修改腾讯开放平台中的APP签名,修改后重装微信或清除微信数据后重试。

2.在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,该类继承自Activity(例如应用程序的包名为net.sourceforge,则新的包名为:net.sourceforge.wxapi),此处应注意包名不要弄错,新增类的名字必须为WXEntryActivity。

返回说明 
用户点击授权后,微信客户端会被拉起,跳转至授权界面,用户在该界面点击允许或取消,SDK通过SendAuth的Resp返回数据给调用方。回调WXEntryActivity中的onResp(BaseResp resp)方法,如下:

 
  1. @Override

  2. public void onResp(BaseResp resp) {

  3. int errorCode = resp.errCode;

  4. switch (errorCode) {

  5. case BaseResp.ErrCode.ERR_OK:

  6. //用户同意

  7. String code = ((SendAuth.Resp) resp).code;

  8. break;

  9. case BaseResp.ErrCode.ERR_AUTH_DENIED:

  10. //用户拒绝

  11. break;

  12. case BaseResp.ErrCode.ERR_USER_CANCEL:

  13. //用户取消

  14. break;

  15. default:

  16. break;

  17. }

  18. ToastUtil.showMessageLong(this, resp.errStr);

  19. }

 

客户端收到授权码后,向自己的服务器发起登录请求,并附带收到的授权码。

服务端收到登录请求,向微信开放平台请求获取access_token,微信开放平台返回Json字符串:

第二步:通过code获取access_token(在自己服务器端做)

获取第一步的code后,请求以下链接获取access_token:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

 
  1. private String getAccessToken(String code) {

  2. String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";

  3. URI uri = URI.create(url);

  4. HttpClient client = new DefaultHttpClient();

  5. HttpGet get = new HttpGet(uri);

  6.  
  7. HttpResponse response;

  8. try {

  9. response = client.execute(get);

  10. if (response.getStatusLine().getStatusCode() == 200) {

  11. HttpEntity entity = response.getEntity();

  12.  
  13. BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));

  14. StringBuilder sb = new StringBuilder();

  15.  
  16. for (String temp = reader.readLine(); temp != null; temp = reader.readLine()) {

  17. sb.append(temp);

  18. }

  19.  
  20. JSONObject object = new JSONObject(sb.toString().trim());

  21. accessToken = object.getString("access_token");

  22. openID = object.getString("openid");

  23. refreshToken = object.getString("refresh_token");

  24. expires_in = object.getLong("expires_in");

  25. return accessToken;

  26. }

  27. } catch (ClientProtocolException e) {

  28. // TODO Auto-generated catch block

  29. e.printStackTrace();

  30. } catch (IOException e) {

  31. // TODO Auto-generated catch block

  32. e.printStackTrace();

  33. } catch (IllegalStateException e) {

  34. // TODO Auto-generated catch block

  35. e.printStackTrace();

  36. } catch (JSONException e) {

  37. // TODO Auto-generated catch block

  38. e.printStackTrace();

  39. }

  40.  
  41. return null;

  42. }

 

参数说明

 
  1. 参数 是否必须 说明

  2. appid 是 应用唯一标识,在微信开放平台提交应用审核通过后获得

  3.  
  4. secret 是 应用密钥AppSecret,在微信开放平台提交应用审核通过后获得

  5.  
  6. code 是 填写第一步获取的code参数

  7.  
  8. grant_type 是 填authorization_code回说明**

正确的返回:

 
  1. {

  2. "access_token":"ACCESS_TOKEN",

  3. "expires_in":7200,

  4. "refresh_token":"REFRESH_TOKEN",

  5. "openid":"OPENID",

  6. "scope":"SCOPE",

  7. "unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL"

  8. }

 

 
  1. 参数 说明

  2. access_token 接口调用凭证

  3. expires_in access_token 接口调用凭证超时时间,单位(秒)

  4. refresh_token 用户刷新access_token

  5. openid 授权用户唯一标识

  6. scope 用户授权的作用域,使用逗号(,)分隔

  7. unionid 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。

 
  1. 错误返回样例:

  2. {"errcode":40029,"errmsg":"invalid code"}
     

服务端收到返回的access_token,将access_token,expires_in,access_token是否有效 等数据返回给客户端,客户端成功登录

客户端可利用已有的access_token获取微信用户信息

第三步:通过access_token调用接口

获取access_token后,进行接口调用,有以下前提:

  1. access_token有效且未超时;
  2. 微信用户已授权给第三方应用帐号相应接口作用域(scope)。

对于接口作用域(scope),能调用的接口有以下:

 
  1. 授权作用域(scope) 接口 接口说明

  2. snsapi_base /sns/oauth2/access_token 通过code换取 access_token、refresh_token和已授权scope

  3. /sns/oauth2/refresh_token 刷新或续期access_token使用

  4. /sns/auth 检查access_token有效性

  5. snsapi_userinfo /sns/userinfo 获取用户个人信息

其中snsapi_base属于基础接口,若应用已拥有其它scope权限,则默认拥有snsapi_base的权限。使用snsapi_base可以让移动端网页授权绕过跳转授权登录页请求用户授权的动作,直接跳转第三方网页带上授权临时票据(code),但会使得用户已授权作用域(scope)仅为snsapi_base,从而导致无法获取到需要用户授权才允许获得的数据和基础功能。

以获取用户信息为例:

 
  1. private void getUserInfo() {

  2. if (isAccessTokenIsInvalid() && System.currentTimeMillis() < expires_in) {

  3. String uri = "https://api.weixin.qq.com/sns/userinfo?access_token=" + accessToken + "&openid=" + openID;

  4. HttpClient client = new DefaultHttpClient();

  5. HttpGet get = new HttpGet(URI.create(uri));

  6. try {

  7. HttpResponse response = client.execute(get);

  8. if (response.getStatusLine().getStatusCode() == 200) {

  9. BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));

  10. StringBuilder builder = new StringBuilder();

  11. for (String temp = reader.readLine(); temp != null; temp = reader.readLine()) {

  12. builder.append(temp);

  13. }

  14. JSONObject object = new JSONObject(builder.toString().trim());

  15. String nikeName = object.getString("nickname");

  16. }

  17. } catch (ClientProtocolException e) {

  18. // TODO Auto-generated catch block

  19. e.printStackTrace();

  20. } catch (IOException e) {

  21. // TODO Auto-generated catch block

  22. e.printStackTrace();

  23. } catch (JSONException e) {

  24. // TODO Auto-generated catch block

  25. e.printStackTrace();

  26. }

  27. }

  28. }

 

微信重复登录

假设用户已经获得授权,则下次登录时只需要验证access_token是否有效,无效则重新获取授权,有效则无需重新获得授权。

1.用户向自己的服务器请求登录,登录方式为微信登录,附带上次登录返回的的access_token

2.服务器收到用户的登录请求,向微信开放平台发送access_token是否有效的验证请求如下:

 
  1. private boolean isAccessTokenIsInvalid() {

  2. String url = "https://api.weixin.qq.com/sns/auth?access_token=" + accessToken + "&openid=" + openID;

  3. URI uri = URI.create(url);

  4. HttpClient client = new DefaultHttpClient();

  5. HttpGet get = new HttpGet(uri);

  6. HttpResponse response;

  7. try {

  8. response = client.execute(get);

  9. if (response.getStatusLine().getStatusCode() == 200) {

  10. HttpEntity entity = response.getEntity();

  11.  
  12. BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));

  13. StringBuilder sb = new StringBuilder();

  14.  
  15. for (String temp = reader.readLine(); temp != null; temp = reader.readLine()) {

  16. sb.append(temp);

  17. }

  18. JSONObject object = new JSONObject(sb.toString().trim());

  19. int errorCode = object.getInt("errcode");

  20. if (errorCode == 0) {

  21. return true;

  22. }

  23. }

  24. } catch (ClientProtocolException e) {

  25. // TODO Auto-generated catch block

  26. e.printStackTrace();

  27. } catch (IOException e) {

  28. // TODO Auto-generated catch block

  29. e.printStackTrace();

  30. } catch (JSONException e) {

  31. // TODO Auto-generated catch block

  32. e.printStackTrace();

  33. }

  34. return false;

  35. }
     

返回说明

 
  1. 正确的Json返回结果:

  2. {

  3. "errcode":0,"errmsg":"ok"

  4. }

  5. 错误的Json返回示例:

  6. {

  7. "errcode":40003,"errmsg":"invalid openid"

  8. }

 

如果access_token有效,服务端将信息返回给客户端,客户端成功登录。

如果access_token无效,服务端向微信开放平台发送刷新access_token的请求如下:

access_token是调用授权关系接口的调用凭证,由于access_token有效期(目前为2个小时)较短,当access_token超时后,可以使用refresh_token进行刷新,access_token刷新结果有两种:

1.若access_token已超时,那么进行refresh_token会获取一个新的access_token,新的超时时间; 
2.若access_token未超时,那么进行refresh_token不会改变access_token,但超时时间会刷新,相当于续期access_token。

refresh_token拥有较长的有效期(30天),当refresh_token失效的后,需要用户重新授权。

 
  1. private void refreshAccessToken() {

  2. String uri = "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=" + ShareUtil.APP_ID + "&grant_type=refresh_token&refresh_token="

  3. + refreshToken;

  4. HttpClient client = new DefaultHttpClient();

  5. HttpGet get = new HttpGet(URI.create(uri));

  6. try {

  7. HttpResponse response = client.execute(get);

  8. if (response.getStatusLine().getStatusCode() == 200) {

  9. BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));

  10. StringBuilder builder = new StringBuilder();

  11. for (String temp = reader.readLine(); temp != null; temp = reader.readLine()) {

  12. builder.append(temp);

  13. }

  14. JSONObject object = new JSONObject(builder.toString().trim());

  15. accessToken = object.getString("access_token");

  16. refreshToken = object.getString("refresh_token");

  17. openID = object.getString("openid");

  18. expires_in = object.getLong("expires_in");

  19. }

  20. } catch (ClientProtocolException e) {

  21. // TODO Auto-generated catch block

  22. e.printStackTrace();

  23. } catch (IOException e) {

  24. // TODO Auto-generated catch block

  25. e.printStackTrace();

  26. } catch (JSONException e) {

  27. // TODO Auto-generated catch block

  28. e.printStackTrace();

  29. }

  30. }

返回说明

 
  1. 正确的返回:

  2. {

  3. "access_token":"ACCESS_TOKEN",

  4. "expires_in":7200,

  5. "refresh_token":"REFRESH_TOKEN",

  6. "openid":"OPENID",

  7. "scope":"SCOPE"

  8. }

  9. 参数 说明

  10. access_token 接口调用凭证

  11. expires_in access_token接口调用凭证超时时间,单位(秒)

  12. refresh_token 用户刷新access_token

  13. openid 授权用户唯一标识

  14. scope 用户授权的作用域,使用逗号(,)分隔

  15.  
  16. 错误返回样例:

  17. {

  18. "errcode":40030,"errmsg":"invalid refresh_token"

  19. }

3.服务端获取到新的access_token等信息,并返回给客户端,客户端成功登录或者重新获取授权。

Android Studio App 接入微信登录 安卓接入微信登录 微信开发平台获取AppId和AppSecret开始接入添加依赖注册wxApi登录调用监听登录回调注意事项 微信开发平台获取AppId和AppSecret 创建应用 填写对应资料 开始接入 添加依赖 Android Studio环境下: 在build.gradle文件中,添加如下依赖即可: dependencies { compile ‘com.tencent.mm.open... 阅读详情

相关推荐

最新!!! iOS app添加微信授权登录——Qt for IOS

前言 为了将Qt开发的ios app增加微信授权登录的功能,我用了很长的时间去查资料和测试。之前我对于Qt开发苹果移动端不甚了解,只按照教程和自己琢磨,写过一版简单的app(那是我第一次接触ios),对于Qt是怎么实现跨平台到ios的,也不清楚,至于Qt框架是怎么转化成xcode那套框架的,这个从未想过。现在不容我再犯懒了:微信,无论是开发文档,还是库文件、接口,都是针对苹果原生态那套东西,接口的调用也是在原生态框架上,对于我跨平台实现,就太不友好了,所以怎么获取到原生态框架,是我的一大难点。 在我跨过

xiaopei_yan的博客 2524

第三方App接入微信登录 解读

第三方App接入微信登录功能 腾讯开放平台微信接入API解读

7万+

QQ微信微博第三方登录接入流程-JAVA项目

前言     概念什么的可以去各个第三方官网查看API,  这里我简单概括下.       第三方账号登录流程"首先,  每个第三方账号(qq/微博/微信等)对于我们的app应用登录后都有产生一个唯一性的openID,  首次登录是这个openID,  第二次登录也是这个openID,  每次登录都是这个不会变的,  所以,  基于这种特性我们可以让这些第三方账号首次登录时,  进行的是(注册--...

ssqi's blog 4580

Android APP开发集成微信登陆流程(手把手新手版)

本文比较适合新手玩家,老玩家就不要看了昨天整了下微信登陆,乍一看官方文档还有点难懂!遂自己整理了下流程,给大家参考参考。官方文档链接:准备工作 | 微信开放文档微信开发者平台文档微信开放平台注意事项:包名和签名信息一定不能错,错了拉不起微信!应用通过审核了才能进行测试。

Monkey_King_Bar的博客 1万+

开发者服务:第三方登录平台接入流程

第三方登录服务简介: 第三方登录平台为开发者整理了SDK列表,辅助开发者快速接入qq、百度、微博人人等平台登录,通过添加分享和赞组件,将站点内容分享到各大社交平台,适用于pc&移动,简单配置和调用,可轻松搭建完成账号功能。 第三方登录有哪些? 腾讯qq互联平台:通过QQ互联,用户可使用QQ账号登录接入的站点,通过添加分享和赞组件,将站点内容分享到QQ空间和朋友网。 百度第三方帐号登录:支持

独立开发者 4244

【微信小程序】实现授权登入---超详细讲解_微信小程序登录

微信授权登录是指在使用某些第三方网站或应用时,用户可以选择使用自己的微信账号进行登录和验证身份。通过微信授权登录,用户可以免去繁琐的注册流程,只需点击授权按钮,即可使用自己的微信账号进行登录。当用户选择使用微信授权登录时,他们会被重定向到微信登录页面,在此页面上,用户登录自己的微信账号并确认是否授权给第三方网站或应用访问自己的基本信息。一旦用户授权,第三方网站或应用就可以获取用户基本信息(如昵称、头像等),并让用户在该网站或应用上直接使用微信账号进行登录和使用。

2401_85158356的博客 6907

游戏接入微信登录(含上架应用市场)全流程

摘要 本文详细介绍了游戏接入微信登录及上架应用市场的完整流程。主要内容包括: 微信开放平台应用申请:创建移动应用、填写应用信息、获取APPID和AppSecret等关键步骤 应用市场上架:以TapTap为例,讲解开发者认证、游戏创建、信息完善和提审流程 微信登录技术实现:包括场景搭建、WxLoginComponent组件开发、原生代码集成等核心环节 完整流程展示:从授权登录到服务器交互的完整功能演示 文章提供了清晰的流程图和操作截图,并附带源码获取方式,适合需要实现微信登录功能的游戏开发者参考。

lsw_Cs的博客 2002

EEG/ERP新手必看:5本神经科学入门书籍推荐(附高清PDF下载)

本文为EEG/ERP研究新手推荐5本神经科学入门书籍,涵盖认知神经科学、数据分析、ERP技术等核心内容。特别推荐《认知神经科学—关于心智的生物学》和《事件相关电位基础》,这些书籍不仅提供理论框架,还包含实用案例和MATLAB代码,帮助研究者快速掌握脑电研究技术。附高清PDF下载,适合实验室小组学习。

weixin_29210727的博客 449

web项目web接入微信登录

最近写了一个简单的微信第三方登录功能,存粹分享下心得和体会 首先需要APPID和SCRECT还有回调域(第三方地址,一般是公司的域名)(域名解析), 获取步骤是: a.在微信开放平台https://open.weixin.qq.com/经过注册成为开发者。 b.在“管理中心”中创建一个移动应用来提交审核 之后是微信登录流程: 简单用例子来说就是:首先要分辨是第一次登录还是不是第一次登录,是前端传过来的授权临时票据code和appid和secrect来进行操作, 再在wxuser表...

mengxinxuexi的博客 5359

OrCAD Capture CIS 17.4 原理图绘制

OrCAD Capture CIS 17.4 原理图绘制

qq_38960013的博客 7638

简单易懂的AXI_Lite 总线详解

简单易懂的AXI_Lite 总线详解 1、前言 AXI_LITE协议主要应用于Xilinx的ZYNQ芯片构架下的ARM和FPGA之间的数据读写,更偏向于单个寄存器的读写。 2、AXI总线与ZYNQ的关系 AXI(Advanced eXtensible Interface)本是由ARM公司提出的一种总线协议,Xilinx从6系列的FPGA开始对AXI总线提供支持,此时AXI已经发展到了AXI4这个版本,所以当你用到Xilinx的软件的时候看到的都是“AIX4”的IP,如Vivado打包一个AXI IP的时候,

m0_46642108的博客 8498

Android:微信授权登录与微信分享全解析

前言在移动互联网浪潮中,联网APP已经把单机拍死在沙滩上,很多公司都希望自家应用能够有一套帐号系统,可是许多用户却并不一定买账:我凭啥注册你家应用的帐号?微博,微信,QQ几乎成了每个人手机中的必装应用,于是微信,微博,QQ说了:来来来,你们都可以用我家的帐号登录你家应用,只要你遵循OAuth2.0协议标准就行。

MichaelX的专栏 3万+

中兴OLT配置实战:从零开始,手把手教你完成一个HGU的完整业务开通(含DBA模板、限速与远程升级)

本文详细介绍了中兴OLT配置实战,从零开始手把手教你完成HGU的完整业务开通,包括DBA模板设计、限速与远程升级等关键步骤。通过实际案例和详细命令,帮助工程师快速掌握GPON网络配置技巧,提升运维效率。

weixin_30599769的博客 350

微信开放平台,公众号第三方平台接入

微信开放平台和公众平台的区别 开放平台是网站或app使用的接口平台,利用开放平台可在自己的网站或app上开发微信帐户登录、微信分享等功能! 公众平台是微信号的一种,也具有开发功能,是在公众号中开发出更多功能,例如微网站等! 简单来讲,公众平台的开发功能是在微信平台的基础上的,而开放平台是在你自己的平台上开发的与微信相关的一些功能 进行第三方开发之前最好拥有 微信公众平台 的开发经验,因为...

潜行者 1万+

机器人视觉实战:用OpenCV搞定手眼标定(附完整C++代码)

本文详细介绍了使用OpenCV实现机器人视觉中的手眼标定技术,包括核心算法、工业场景优化及完整C++代码示例。通过解析坐标系转换问题,提供从数据采集到标定验证的全流程解决方案,帮助开发者在复杂工业环境中实现高精度机械臂与视觉系统的协同作业。

weixin_29306571的博客 483

【CASS精品教程】035:南方CASS7.1台阶画法案例大全

摘要:本文详细介绍了南方CASS7.1软件中5种台阶工具的使用方法,包括普通台阶、有边台阶、L型台阶、U型台阶和不规则台阶。重点说明各类台阶的绘制步骤和注意事项,如绘制方向(从右下角逆时针连接4个点)、台阶方向标识(白色边为下边)、台阶数自动生成不可更改等特性。同时指出高版本CASS可能存在操作差异,并配以多张示意图直观展示各类台阶的绘制过程和效果,为使用CASS7.1绘制建筑台阶提供了实用指导。(148字)

智慧空间实验室 2925

微信小程序登录流程整理

最近在开发微信小程序,发现小程序的登录流程和PC端略有差异,于是抽时间整理了一下登录流程。 登录流程时序 首先,简单介绍下小程序登录的几个步骤。 1、点击登录按钮 2、获取微信sessionKey数据 ​ 1)调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。 ​ 2)调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key。 3、获取用户信息的加密数据(调用前需要 用户授权 scope.userInfo

小蓝鲸的博客 1272

懒人必备!Coze一键制作火柴人心理学视频,新号45天涨了2.6w粉!(附超详细实战教程)

其实,只需要借助扣子(https://www.coze.cn/),采用的是 AI 智能体工作流模式,这种模式能够一站式搞定上述所有环节,一条四五十秒的视频,短短一两分钟就能轻松搞定!让制作效率提升了整整百倍!在这篇教程里,我将毫无保留地为大家分享,如何使用扣子 Coze 批量制作 “火柴人风格的心理学视频” 的超详细步骤。

李同学Lino的博客 3859

第三方接入封装(QQ,微信,微博,支付宝)

第三方登录分享支付在开发中经常会遇到为了方便下次接入使用特意封装了一下 接下来说下使用方法 使用之前还是需要配置编译环境的(添加以来库) QQ:只需要添加该库:SystemConfiguration.framework 微信和微博建议使用pods 支付宝环境配置 JYTPHelper这个是所有接入的整合 JYDefaultHelper 该类是父类,为必导文件 JYWCH...

Jayant_Y的博客 1173

《UDS协议从入门到精通》系列——图解0x83:访问时间参数

详细介绍UDS协议0x83服务,目标ECU的时序参数设置有哪些注意点?

车载系统攻城狮 2138

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

JAVA-网站应用从零接入QQ 第三方登录

JAVA - 从零开始接入第三方登录 - QQ 登录 整理一遍接入 QQ 登录的流程吧,整个流程是比较复杂的,难的不会,会的不难。 (一)首先弄清楚几个问题: (1)需要域名和备案吗? 需要域名,且需要进行备案(备案一般还需要有云服务器),域名不贵 (2)我没有上线可以不用云服务器本地调试吗? 可以,回调地址可以更改,改成类似: http://localhost:8080/自定义路径 就可以,并...

肖朋伟 1949

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: element ui table scrollTop 滚动到行头或行尾
下一篇: es6数组方法find()、findIndex()与filter()的总结
Uncle_long
博客等级 码龄10年 17粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值