当前位置: 首页 > 后端技术 > Node.js

githuboauth第三方认证登录

时间:2023-04-03 19:58:51 Node.js

认证与授权认证(Authentication)常用的身份认证方式:1.用户名密码登录2.邮箱发送登录链接3.手机号接收验证码授权(Authorization)常见的授权登录有:QQ、微信、微博、githubOAuth概念:OAuth是互联网行业标准的授权方式。每个公司都按照这套标准实现自己的OAuth认证和授权流程,第三方想要接入这个流程,就需要使用OAuth的一套解决方案。作用:客户端:浏览器服务器:开发本网站对应的服务器授权服务器:提供OAuth第三方访问服务的提供商,如QQ、微信等授权方式:授权码授权码密码(密码):使用OAuth提供者暴露的API,用于使用本网站的用户名和密码登录。(不推荐,可信安全,一般用于公司内部的登录方式)当客户端凭据(clientcredentials)AuthorizationCode通过认证码的认证授权方式进行OAuth访问时,主要流程如下步骤:客户端发起请求,重定向到OAuth访问方,并附上client_id。用户在重定向的网站输入用户名和密码并成功登录后,OAuth接入方会返回一个code给服务器。服务端拿到code后,拿着client_secret和code向OAuth接入方申请获得Token。服务端拿到Token后,进入授权窗口授权成功,跳转到客户端网站。GithubOAuth第三方接入前期准备1.前端项目和服务端项目2.在github中创建OAuth应用创建应用流程https://docs.github.com/cn/de...api文档:https://docs.github.com/cn/de...涉及api跳转:简单版只能带client_idurl:https://github.com/login/oaut...param:client_id:client_id是注册时的client_idscope:你想要的权限范围redirect_uri:授权后重定向到项目的地址,必须和注册时的redirecturi一样GithubOAuthApplogin:用于登录和授权应用程序的特定帐户,如果你已经在本站登录github并授权,请求OAuth时省略登录步骤。状态:不可猜测的随机字符串。它用于防止跨站点请求伪造攻击。allow_signup:是否为未授权用户提供在OAuth过程中注册GitHub的选项。默认值是true。如果政策禁止注册,则使用false。请求token:posturl:https://github.com/login/oaut...param:client_id:required,表示token用户client_secret:required,表示tokenusercode:required,表示用户已授权redirect_uri:同abovestate:请求用户信息如上:geturl:https://api.github.com/userheader:Authorization:请求access_token时返回的access_token,该字段统一为token+access_token。总结一下,核心步骤如下:注册应用账号,跳转到前台页面授权页面授权完成后,跳转到后台界面,携带代码。后端接口使用代码交换令牌。使用token和accountsecretkey交换用户信息。比较和更新或添加用户数据。保存jwttokencookie并重定向到前端页面Demo源码:包括跳转登录、数据库存储、用户详情、用户列表等接口和功能;前端:https://github.com/Aimee1608/...后端:https://github.com/Aimee1608/...