三方登录常需要客户端和服务端共同完成,对OAuth2,客户端获取授权码,服务端用授权码换取访问凭证;对OIDC,客户端获取ID Token,服务端验证其正确性用以登录之类的场景。但两端又常非同一个开发人员,服务端逻辑写好后需要客户端配合获取授权码或ID Token作为输入进行调试验证。这样效率太过低下,协调上会有困难。
最好是服务端能够自己获取输入参数,这里介绍常见的四种登录方式的简单调试方法:微信登录、Apple ID登录、Google登录、Facebook登录。
本文的独特之处在于:
- 不介绍登录方式,只介绍调试方式。登录方式网上大把文章
- 其它文章在介绍登录开发方式时,涉及到客户端往往比较正式,对后端程序员有一定门槛,我们需要一种快速简单的方式
微信登录
原理
微信登录遵循标准的OAuth 2.0协议,完整流程参考这里。
客户端负责:向微信服务器获取Authorization Code
服务端负责:用Authorization Code向微信服务器换Access Token
最快的方式是通过web应用的方式去访问,我们只需要构建一个url即可,如下
https://open.weixin.qq.com/connect/qrconnect?appid=你的appid&redirect_uri=登录成功后你的重定向地址&response_type=code&scope=snsapi_login&state=任意字符串#wechat_redirect
配置
在微信开发者平台创建一个web应用,两个注意事项
- appid即为下图框一的内容
- 回调地址必须在设置的回调域内;具体的回调子路径随便写,反正我们要的是回调地址后加的code参数
![image-20220712173735912](https://i-blog.csdnimg.cn/blog_migrate/5ad01c7d79c1c6170a92f208e9c981b5.png)
如下即可得到code
![image-20220712173735912](https://i-blog.csdnimg.cn/blog_migrate/9dd74c2f81875b26e8bd50157da49b57.png)
Sign In With Apple
原理
Apple登录遵循标准的Open ID Connect 1.0协议
客户端负责:获取Identity Token
服务端负责:验证Identity Token
还是构建Web应用来做,参考文档,整个html只如下即可,需要我们填写client id和重定向地址两个参数。
<html>
<head>
</head>
<body>
<script type="text/javascript"