资讯专栏INFORMATION COLUMN

简单学习使用oAuth2方式进行三方登录

anquan / 448人阅读

摘要:登录方式本来公司项目是正常的用户名密码登录,但是突然转换成了第三方方式登录,由此开始学习了该种登录形式。同普通的用户名密码登录不同,登录方式中,增加了一个授权层。至此,三方登录已经成功登录。

oAuth2 登录方式

本来公司项目是正常的用户名、密码登录,但是突然转换成了第三方oAuth2方式登录,由此开始学习了该种登录形式。

思路

共有5种授权模式,有授权码模式、简化模式、密码模式、客户端模式,这里只介绍授权码模式,这大概是功能最完整、流程最严密的授权模式,大概也是使用最多的授权模式。

同普通的用户名、密码登录不同,oAuth2登录方式中,增加了一个授权层。用户想要进行登录操作时,会被跳转到授权服务器上进行登录,在授权服务器登录成功时,会触发一个回调函数重新回到当前用户所在系统,之后执行后续操作。

这里使用了simple-oauth2。正常的npm install simple-oauth2即可,想了解更详细的使用方法,点击此传送门便可了解。

配置信息:

cosnt oauth2 = 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=code

// /auth路由处理
const authorizationUrl = oauth2.authorizationCode.authorizeURL({
    redirect_uri: "http://localhost:3000/callback"
    // scope: "" 可有可无参数
    // state: "" 可有可无参数 可以自己任意填写
})

(2)通过该Url,可以到达三方登录界面,用户在三方登陆成功时,上面的redirect_uri就会被回调,同时会附带一个code在redirect_uri上,该code由三方登录服务器提供,该code与客户端Id和redirect_uri是一一对应的关系,回调的url如/callback/code=

// /callback路由处理
let code = req.query.code

oauth2.authorizationsCode.getToken(code, (err, result) => {
    if(err) // handle error
    const token = oauth2.accessToken.create(result) // 这里就是得到的access_token
})

(3)重要的token得到之后,就预示着三方登录已经登录成功。接下来就是自己系统的处理了。

至此,三方登录已经成功登录。

写的可能不尽如人意,我也是学习者,写的目的也是为了让自己对oAuth2登录加深印象,如果错误,欢迎指正,一起进步啊。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89233.html

相关文章

  • 说说微信扫码登录

    摘要:详情接口我们这里主要讲的是网站应用,网站应用微信登录是基于协议标准构建的微信授权登录系统即上面的协议。在微信客户端授权登录获取用户信息的可以查看。微信授权登录目前支持模式,适用于拥有端的应用授权。 一、OAuth2.0 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。 ...

    Jokcy 评论0 收藏0
  • Spring Security OAuth2 优雅的集成短信验证码登录以及第三方登录

    摘要:前言基于做微服务架构分布式系统时,作为认证的业内标准,也提供了全套的解决方案来支持在环境下使用,提供了开箱即用的组件。 前言 基于SpringCloud做微服务架构分布式系统时,OAuth2.0作为认证的业内标准,Spring Security OAuth2也提供了全套的解决方案来支持在Spring Cloud/Spring Boot环境下使用OAuth2.0,提供了开箱即用的组件。但...

    yck 评论0 收藏0
  • Vue.js 2.0 基于OAuth2.0的第三方登录组件

    摘要:第三方登录是现在常见的登录方式,免注册且安全方便快捷。大部分的第三方登录都参考了的认证方法。这里我主要总结一下第三方登录组件的设计流程。身份认证组件,需解耦,至少要唤起登录和登出事件。认证成功唤起登录事件并将用户信息传递出去。 第三方登录是现在常见的登录方式,免注册且安全方便快捷。 本篇文章将以Github为例,介绍如何在自己的站点添加第三方登录模块。 OAuth2.0 OAuth(开...

    RancherLabs 评论0 收藏0
  • 登录那些事儿

    摘要:假如是在同一个域名下,例如与,因为允许设置到二级域名下,所以和是可以共享的,用户的信息可以通过可逆加密放在二级域名下的,并且设置,就可以一站登录,站站登录。 原文链接:BlueSun | 登录那些事儿 也不知道是什么原因,刚开始不久的职业生涯,在技术这条路走着走着,和「登录」总是有着一个不解之缘。还记得当初学习Web编程的时候么?不管是Java、.Net、PHP,继经典「Hello W...

    layman 评论0 收藏0
  • 基于 Github API 的图床 Chrome 插件开发全纪录

    摘要:最近基于开发了一款图床插件,现在已经开源并上架应用商店。通过方法把转成,然后放在里测试一下看来效果是的,接下来就是对图床插件进行开发的步骤了。至此,整个插件的开发发布流程就已经完成了。 showImg(https://user-images.githubusercontent.com/12172868/57382983-8f29b900-71e0-11e9-8fe9-c0f12fd54...

    DoINsiSt 评论0 收藏0

发表评论

0条评论

anquan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<