oauth2

Google OAuth2 API Refresh Tokens

天大地大妈咪最大 提交于 2019-12-01 00:05:16
I'm using the google-auth-library-nodejs library to integrate into a number of GMail accounts, to get lists of emails. My process flow is simple: 1) Try to authorize the client, using this function: function _authorise(mailBox, callback) { let auth = new googleAuth(); let clientId = eval(`process.env.GMAIL_API_CLIENT_ID_${mailBox.toUpperCase()}`); let clientSecret = eval(`process.env.GMAIL_API_CLIENT_SECRET_${mailBox.toUpperCase()}`); let redirectUri = eval(`process.env.GMAIL_API_REDIRECT_URI_${mailBox.toUpperCase()}`); let tokenFile = process.env.GMAIL_API_TOKEN_PATH + mailBox.toLowerCase()+

Spring OAuth2.0 - Dynamically register OAuth2.0 client

狂风中的少年 提交于 2019-11-30 19:31:42
问题 I am working on setting up an OAuth2.0 authorization server using Spring security. I want to know if there is a way to dynamically register an OAuth2.0 client after the OAuth2.0 authorization server is up and running? Basically, I know that I can register a client while configuring the OAuth2.0 server by extending the AuthorizationServerConfigurerAdapter and overriding the configure method to add the client details in memory. However, this way the client is pre-registered and I would like to

OAuth2.0授权登录

一个人想着一个人 提交于 2019-11-30 15:14:02
    最近工作中遇到了多系统间的授权登录,对OAuth2.0进行了学习研究,并总结备忘。 【 场景 】 我们登录一些论坛等网站的时候,如果不想单独注册该网站账号,可以选择用微信或QQ账号进行授权登录。 这样的第三方登录方式到底是怎么实现的呢?难道是腾讯把我们微信或QQ账号信息卖给了这些网站?很显然,腾讯是不会这么干的,这种登录方式的实现,其实就是使用的 OAuth2.0 的授权登录方式。    类似地,在公司内部,如果公司有多套不同的软件系统,例如公司内网的财务报销系统、考勤系统、报销系统、人事系统等,也可以实现一个员工账号就能授权访问所有系统,而不需要每个系统都开通单独的账号,设置独立的密码。这是通常所说的 SSO单点登录, 而 OAuth2.0是单点登录的实现方式之一 。 【 定义 】 OAuth2.0是一种允许第三方应用程序使用资源所有者的 凭据 获得对资源有限访问权限的一种授权协议。 例如在上述例子中,通过微信登录论坛的过程,就相当于微信允许该论坛作为第三方应用程序在经过微信用户授权后,通过 微信颁发的授权凭证 有限地访问用户的微信头像、手机号,性别等受限制的资源,从而来构建自身的登录逻辑。   注:在OAuth2.0协议中,第三方应用程序获取的凭证并不等同于资源拥有者持有的用户名和密码,以上面例子来说,微信是不会直接将用户的用户名、密码等信息作为凭证返回给该论坛的。这种

身份认证系统(三)什么是OAuth2

喜欢而已 提交于 2019-11-30 12:37:28
本文准备用最简单的语言告诉大家什么是OAuth2 ,OAuth2是干什么的。 我们有一个资源服务器,资源服务器中有一系列的用户数据。 现在有一个应用想想要获取我们的用户数据。 那么最简单的方法就是我们开发一个API。 可是某天来了个恶意应用,或者是我们不想给它数据的应用,我们就会造成数据的泄漏。 所以我们就需要对第三方的应用进行校验,比如最原始的方法是使用IP地址,如果是不认识的IP地址就不给他资源。 可是这种方案有两个严重的缺点: 1、当客户应用换了IP地址之后,我们也要同时维护更换IP地址。 2、当客户应用是分布式部署很多份的时候,我们就要为同一个用户维护很多份IP地址。 3、ip是可以伪装的。 这样无疑是繁琐麻烦、难以维护的。 所以一般业界的解决方案是给予客户应用一个“出入证”——专业称为访问令牌(Access Token)。如果来访问的客户应用带有合法的访问令牌,则可以给他数据,否则便拒绝。 那么Access Token哪里来的呢?我们一般是由一个授权服务器颁发的。每个允许其访问资源的客户应用都现在我们的系统中注册一个appkey,然后每次用这个appkey向我们的授权服务器申请Access Token。这样不论客户应用换不换ip、有多少ip,只要客户应用的appkey是唯一不变的就不用做任何修改,也不用担心ip伪装的问题。 到此为止我们其实还面临着一个问题

微信公众平台开发——微信授权登录(OAuth2.0)

北城以北 提交于 2019-11-30 11:53:40
1、OAuth2.0简介    OAuth (开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。   允许用户 提供一个令牌 , 而不是用户名和密码来访问他们存放在特定服务提供者的数据 。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的访问许可或他们数据的所有内容。   我们这里主要模拟在微信公众号中使用OAuth2.0进行授权,获取用户的基本信息的过程。详细的开发文档可查看微信的官方文档。   微信公众平台开发者文档: http://mp.weixin.qq.com/wiki/14/89b871b5466b19b3efa4ada8e577d45e.html 2、获取测试公众账号及其相关配置 1)、公众测试账号获取   访问上面的连接,选择“接口测试号申请”获得直接打开 http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index 通过微信客户端扫码登录即可登录。  

LinkedIn OAuth2 Authorization server encountered an unexpected condition

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-30 03:26:22
问题 We're getting this weird error for some of our users who are trying to authenticate via linked in OAuth2 API from mobile within a webview. https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=XXX&state=XXX&redirect_uri=XXX&scope=r_emailaddress%20r_basicprofile After the submit ( https://www.linkedin.com/uas/oauth2/authorizedialog/submit ), there is a redirect to our redirect uri with the following params. ?error=server_error&error_description=XXX&state=the

OAuth2.0的四种授权模式

我的梦境 提交于 2019-11-29 20:49:37
1. OAuth2简易实战(一)-四种模式 1.1. 隐式授权模式(Implicit Grant) 第一步:用户访问页面时,重定向到认证服务器。 第二步:认证服务器给用户一个认证页面,等待用户授权。 第三步:用户授权,认证服务器想应用页面返回Token 第四步:验证Token,访问真正的资源页面 1.2. 授权码授权模式(Authorization code Grant) 第一步:用户访问页面 第二步:访问的页面将请求重定向到认证服务器 第三步:认证服务器向用户展示授权页面,等待用户授权 第四步:用户授权,认证服务器生成一个code和带上client_id发送给应用服务器 然后,应用服务器拿到code,并用client_id去后台查询对应的client_secret 第五步:将code、client_id、client_secret传给认证服务器换取access_token和 refresh_token 第六步:将access_token和refresh_token传给应用服务器 第七步:验证token,访问真正的资源页面 案例Github自取: https://github.com/PinkPig-cq/springSecurityoAuth 1.3. 密码模式(Resource Owner Password Credentials Grant) 第一步:用户访问用页面时

Spring Security 解析(五) —— Spring Security Oauth2 开发

冷暖自知 提交于 2019-11-29 18:53:27
Spring Security 解析(五) —— Spring Security Oauth2 开发 >   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security 、Spring Security Oauth2 等权限、认证相关的内容、原理及设计学习并整理一遍。本系列文章就是在学习的过程中加强印象和理解所撰写的,如有侵权请告知。 > 项目环境: > - JDK1.8 > - Spring boot 2.x > - Spring Security 5.x   前面几篇文章基本上已经把Security的核心内容讲得差不多了,那么从本篇文章我们开始接触Spring Security Oauth2 相关的内容,这其中包括后面的 Spring Social (其本质也是基于Oauth2)。有一点要说明的是,我们是在原有的Spring-Security 项目上继续开发,存在一些必要的重构,但不影响前面Security的功能。 一、 Oauth2 与 Spring Security Oauth2 Oauth2   有关于Oauth2 的 资料,网上很多,但最值得推荐的还是 阮一峰老师的 理解OAuth 2.0 ,在这里我就不重复描述Oauth2了,但我还是有必要提下其中的重要的点:  

SinaWeibo Oauth2.0授权问题

时光总嘲笑我的痴心妄想 提交于 2019-11-29 12:19:56
本文讲的是如何通过Oauth2.0对第三方APP授权,Oauth2.0的授权流程,原理的这里就不介绍了,百度搜就有了。 这里主要讲的是怎么在自己的APP中添加代码,获取access token。 第一步:下载SDK。 登入open.weibo.com,在文档--资源下载--SDK,下载新浪提供的SDK, 第二步:创建APP,申请app key, app ,redirect_url 登入http://open.weibo.com/development,点击创建应用,这里怎么填呢,参考http://open.weibo.com/wiki/新手指南, 创建成功之后,在我的应用中,应用信息--基本信息中就可以看到自己的app key和app secret。 进入高级信息中,查看Oauth2.0授权设置,点右边的编辑, 这里可以选择输入任意地址(我这里是填了我的博客地址,毕竟我只是测试而已),这里需要记住这个回调地址。 第三步:添加代码 解压刚刚下载的SDK包,其中有两个文件,一个是app_signatures.apk,一个是weibosdkcore.jar(我不明白为什么要做成个包), 把weibosdkcore.jar添加到你的APP工程里,将app_signatures.apk安装到调试你的APP的平台上,虚拟机或者真机。 授权部分其实看一下weibo sdk的方式就可以了

PHP实现QQ第三方登录代码

回眸只為那壹抹淺笑 提交于 2019-11-29 00:31:57
前言: PHP实现QQ快速登录,罗列了三种方法 方法一: 面向过程,回调地址和首次触发登录写到了一个方法页面【因为有了if做判断】, 方法二,三: 面向对象 1.先调用登录方法,向腾讯发送请求, 2.腾讯携带本网站唯一对应参数OPENID,ACCESSTOKEN,返回到对应回调页面, 3.回调页面接受到腾讯的参数后,通过这个两个参数,再发出对应的请求,如查询用户的数据。 4.腾讯做出对应的操作,如返回这个用户的数据给你 即使你没看懂,也没关系,按照我下面的流程来,保证你可以实现。 前期准备: 使用人家腾讯的功能,总得和人家打招呼吧! QQ互联首页:http://connect.qq.com/ 进入网址后,按如下操作来: 一.进入官网 二.申请创建【网站】应用 三.按要求填写资料 注意网站地址:填写你要设置快速登录的网址,eg:http://www.test.com; 回调地址:填写你发送QQ快速登陆后,腾讯得给你信息,这个信息往此页面接受。eg:http://www.test.com/accept_info.php 【详细的申请填写,请见官方提示,这里不做赘述】 四.申请成功后,完善信息 最终要求,获得APP_ID ,APP_KEY 五.代码部分: 在你对应的PHP文件内写入,如下 方法一, 面向过程法 使用方法:配置$app_id,$app_secret,$my_url后