oAuth2公司项目的登录方式本来是普通的用户名密码登录,突然转为第三方oAuth2登录方式,由此开始学习这个登录表单。共有5种授权模式,包括授权码模式、简化模式、密码模式和客户端模式。这里只介绍授权码方式。这可能是功能最全、流程最严谨的授权方式,也可能是使用最多的授权方式。.与普通的用户名密码登录不同,oAuth2登录方式增加了授权层。当用户要登录时,会被重定向到授权服务器登录,当授权服务器登录成功后,会触发一个回调函数,返回到当前用户的系统,然后进行后续操作。这里使用了Simple-oauth2。正常的npminstallsimple-oauth2就足够了。如果您想了解更详细的使用方法,请点击本传送门进行学习。配置信息:cosntoauth2=simpleOauth.create({"clientId":"","clientSecret":"","tokenPath":"/oauth/access_token","authorizePath":"/oauth/authorize"})步骤:(1)用户点击登录按钮。服务端预先设置了一个配置信息如上图,后台会通过下面的函数获取一个Url,结果类似于/oauth/authorize/redirect_uri=http://localhost:3000/callback&client_id=&clientsecret=&response_type=代码。///auth路由处理constauthorizationUrl=oauth2.authorizationCode.authorizeURL({redirect_uri:'http://localhost:3000/callback"//scope:''optionalparameters//state:''optional参数可以填写自己})(2)通过这个Url可以到达三方登录界面,当用户在三方登录成功后,会回调上面的redirect_uri,并在redirect_uri中附加一个code.代码由三方登录服务器提供,代码与clientId和redirect_uri一一对应,回调url如/callback/code=.///回调路由处理让code=req.query.codeoauth2.authorizationsCode.getToken(code,(err,result)=>{if(err)//处理错误consttoken=oauth2.accessToken.create(result)//这里是获取到的access_token})(3)获取到importanttoken后,说明三方登录已经登录成功,接下来就是自己系统的处理了。至此,三方登录已经成功登录。写的可能不太尽如人意。我也是一个学习者。写的目的也是为了加深自己对oAuth2登录的印象。如果我错了,请指正,共同进步。