struts2 redirect 获取参数null_社会化登录支持授权域以便于获取更大权限

dc815ec8c651061e84613c3e609247c3.png

使用 Authing 可以轻松接入许多社会化登录,同时无需翻看社会化登录提供方的繁琐接入文档,让开发者更加专注业务从而提升开发效率。

ebc685be9ff3ae9087db28c90d74ee02.png这看起来很方便,But,通过 Authing 登录的社会化登录用户,无法获取更高级的权限!以 Github 举例:授权域功能上线之前,通过 Authing 登录的 Github 用户无法授权读写仓库、读写 Issues 等权限;此功能上线后,通过 Authing 登录的 Github 用户将拥有这些高阶权限的授权能力。如 Github 授权域(图中的 Scope 参数):d2ccfdb18caba698bdf33e78339709c0.pngQQ 授权域(图中的 Scope 参数):524d880fbd00a29790011d02e01c9d91.png微博授权域(图中的 Scope 参数):31286f500c402217d9af4f2d4fd38fb5.png开发者只需要勾选以上 checkbox 就可以很方便的拥有这些能力!授权流程
  1. 用户通过 Authing 登录;

  1. 用户在 Authing 登录界面中点击「使用 Github 登录」;

  1. 用户通过 Github 登录后 Authing 将 Github 的信息集成到 Authing 用户信息中;

  1. Authing 返回 Code 给开发者配置好的 redirct_uri;

  1. 开发者使用 Code 换取 access_token;

  1. 开发者使用 access_token 换取用户信息;

  1. 开发者在用户信息中获取用户在 Github 平台的 access_token,然后获取操作 Github 的更高级权限;

  1. 开发者完成用户认证并开始引导用户执行业务流程;

下图是一个简化流程:eb9e2a2bcda729d079bf71fe4279dd27.png开启社会化登录授权域创建 Github 应用在 Github 申请 OAuth 应用,同时授权回调地址填写 Authing 提供的地址:https://oauth.authing.cn/oauth/github/redirect,如下图所示:a09d66b8a8a2eed363ca1d7d73a9b5a5.png创建完成后记录 Client ID 和 Client Secret:3c9cda3060384d7e926b69d0a82eb725.png配置社会化登录在Authing 控制台中依次点击第三方登录 -> 社会化登录 -> Github,打开 Github 登录,填写 Github OAuth 应用信息,并在 Scopes 多选框中勾选 repo,最后点击确定:0704d955a9d1b3fa163807f9e2a7d9e4.pngrepo 授权域的作用是授权第三方应用读写 Github 仓库的权限。如果你想了解其他 Scope 的含义,请查看这篇文档:https://docs.authing.cn/authing/advanced/social-login/social-login-scopes。体验拥有更高权限的 Github 登录访问登录页面Authing 控制台 > 第三方登录 > OIDC 应用,找到你的 OIDC 应用,点击体验按钮。df8bf099305a00d1eea2bc70ebc638bb.png如果没有 OIDC 应用,请先创建 OIDC 应用。转到登录界面后,点击「使用 Github 登录」,如下图所示:158afa74c39ce2fec0a7af531dac5077.png在弹出的窗口中,与 Github 完成登录认证,之后会显示确权页面,可见此处提示需要授权 repo,如下图所示:2ad11ff7a2ab2f6b2399bee0a6b4e194.png点击授权按钮,之后是 Authing 单点登录中的确权环节:5958feb725b10756bb63f238bb1fcaf7.png点击「授权登录」,之后会跳转到在 OIDC 应用中设置的业务回调地址:0dcee0e981fb00cf039a63201f45b170.png获取到 code 之后,你可以参考以下链接完成登录:1. https://docs.authing.cn/authing/advanced/oidc/oidc-authorization#04-shi-yong-code-huan-qu-token获取社会化登录 token那么接下来如何从 Authing 获取并使用 Github 的 access_token,使用更高级的权限呢?只要获取用户资料即可,Github 的 access_token 存在用户资料中。以下以 Authing Node.js SDK 来举例:安装 authing-js-sdk:
$ npm install authing-js-sdk
初始化 SDK 并获取用户资料:
const Authing = require('authing-js-sdk');const userPoolId = "你的用户池 ID";const secret = "你的用户池 Secret";let authing = new Authing({  userPoolId,  secret});async function go() {  let user = await authing.user({id: 'Authing 用户 ID'});  console.log(user);}go();
返回结果:
{  ...  "thirdPartyIdentity": {    "provider": "github",    "refreshToken": null,    "expiresIn": null,    "updatedAt": "2020-02-11T21:56:50+08:00",    "accessToken": "1a20a073f967264a7e7d05528236525b1376a4a9"  }  ...}
使用社会化登录 token从上一步的返回结果中取出 Github Token 后,调用读取用户仓库信息的 API:
$ curl -H "Authorization: token 1a20a073f967264a7e7d05528236525b1376a4a9" https://api.github.com/user/repos\?visibility\=private
可以看到返回了用户的私有仓库信息:e506e1b6c2d7cf3bb41f152d597e9c9d.png刷新社会化登录 token如果社会化登录方的 token 在一定时间后失效,会导致旧的 token 无法访问社会化登录方的服务,因此需要刷新社会化登录方的 token,并使用新的 token 调用相关服务。你可以调用 SDK 中的 refreshThirdPartyToken 方法来刷新社会化登录 token:
const Authing = require('authing-js-sdk');const userPoolId = "你的用户池 ID"const secret = "你的用户池 Secret"let authing = new Authing({  userPoolId,  secret})async function go() {  let res = await authing.refreshThirdPartyToken('Authing 用户 ID');  console.log(res);}go();

返回结果:
{  refreshSuccess: true,  message: 'github token 无需刷新,官网文档已说明长期有效',  provider: 'github',  refreshToken: null,  accessToken: '1a20a073f967264a7e7d05528236525b1376a4a9',  updatedAt: '2020-02-11T21:57:04+08:00'}
由于 Github 不提供 refresh_token 并且 access_token 长期有效,所以此处其实并未真正刷新 token。其他社会化登录方如微信、QQ 提供刷新 token 功能,通过 SDK 刷新 token 时,Authing 会发出刷新 token 请求,并返回新的 accessToken 和 refreshToken。总结以上就是 Authing + Github 社会化登录的使用方式。总结起来,Authing 帮你省去了服务器处理 OAuth 2.0 协议中 code 换 token,token 换用户信息的过程,能够直接将用户信息返回给你。同时 Authing 易用的 SDK 能够帮你快速接入获取、刷新用户社会化登录 token 的功能。如果你还需要其他社会化登录,比如微博、微信,那么此时的身份整合与管理作用的优势就体现出来,同时你也无需阅读国内质量参差不齐的授权登录开发文档。你只需要填写配置信息,Authing 会帮你拼接授权 URL  链接,Authing 会帮你处理 OAuth 2.0 协议中换取用户信息的繁琐过程,并将用户信息直接返回给你的业务地址,Authing 会帮你绑定不同第三方社会化登录提供商,Authing 为你提供简单易用的 SDK,轻松获取、刷新用户的社会化登录 token。dc815ec8c651061e84613c3e609247c3.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美国科技界高度关注中国科技创新进展

来源:新华网近日,美国《福布斯》双周刊网站刊文说,中国互联网和高科技企业已超越模仿时代,成为投资和研发的全球领先者,中国的科技巨头进入了全新的创新时代。记者在采访中发现,美国科技界高度关注中国科技…

科技创新2030—“新一代人工智能”重大项目拟立项的2018年度项目公示清单

来源:财政资金申请根据《国务院关于改进加强中央财政科研项目和资金管理的若干意见》(国发[2014]11号)、《国务院关于深化中央财政科技计划(专项、基金等)管理改革方案的通知》(国发[2014]64号)…

SpringMVC核心——视图渲染(包含视图解析)问题

一、本来想说的是返回值处理问题,但在 SpringMVC 中,返回值处理问题的核心就是视图渲染。所以这里标题叫视图渲染问题。 本来想在上一篇文章中对视图解析进行说明的,但是通过源码发现,它应该算到视图渲染中,所以在这篇…

国际机器人联合会:全球工业机器人2019报告

来源:资本实验室据国际机器人联合会(IFR)最新发布的《全球机器人2019——工业机器人》报告数据,2018年全球工业机器人出货量42.2万台,比上年增长6%;年销售额达到165亿美元,创下新纪录。 IFR预测…

mediarecorder添加时间戳_Python脚本实现数据处理(官方实例)和Hive自带时间函数...

官网示例官网地址:https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-ApacheWeblogData下载数据wget http://files.grouplens.org/datasets/movielens/ml-100k.zip我们下载好数据安装unzip yum install -y unzip解压数据创建库创建表…

从空城计到阿尔法狗,博弈论如何渗透我们的生活?

来源:返朴2016年,有那么一只“狗”大闹天宫,这在整个人类社会引起了轩然大波。它就是阿尔法狗(AlphaGo),是谷歌(Google)旗下公司DeepMind 在人工智能与博弈论交叉研究上的一个杰作。…

反弹式木马原理_汽车避震器的原理与改装问题

一、避震器or避振器“震”字是指车轮在路面的滚动过程中,由于路面的不平,从路面传递上来的震动,而不是人为制造“振”动,所以使用“震”字更科学。二、避震器的工作原理避震器的工作原理是通过活塞运动产生阻尼力,将动…

科学探索奖首批50名获奖者都有谁?

来源:知识分子9月20日上午,经过四个多月的评审,2019年 获奖名单正式公布。来自全国26个科研单位、高校和企业的50位科学家成为首届“科学探索奖”获奖者,每人将在未来5年获得由腾讯基金会资助的300万元人民币。据悉,20…

untitled软件怎么用_苹果手机怎么用4G网络于App Store下载超过200MB以上的软件

近两年来,随着苹果中国市场份额被国产品牌挤占了不少,他们越来越懂得“聆听”中国用家的需要,其中一项便是用手机网络(4G)下载iOS应用。在这一点上我们中国人也不用再妄自菲薄了,在疯狂的4G建网以后,我们国家已经拥有全…

关于人脸识别的最全研究!

来源:北京物联网智能技术应用协会本文内容涵盖人脸识别发展历程、市场研究、核心技术、商业应用以及产业落地、个人看法等干货研究。注意,本文干货满满,约有2万7千字,强烈建议大家先收藏后学习!01 发展史1. 人脸识别的…

关于字节对齐以及内存占用

参考博文: http://www.javamex.com/tutorials/memory/object_memory_usage.shtml 本文主要考虑正常情况下一个对象在堆上的内存占用情况:对于下面的特殊情况不作讨论 1、某些情况下,JVM可能不会把对象存储在堆上:比如小的线程私有…

人工智能应用实践与趋势

来源:阿里云研究中心《崛起的超级智能》一书主要阐述当今天人类为人工智能的春天到来而兴奋,为人工智能是否超越人类而恐慌的时候,一个更为庞大、远超人类预期的智能形态正在崛起,种种迹象表明50年来,互联网正在从网状…

excel表格打印每页都有表头_这么漂亮的Excel表格,用黑白打印机打印真是可惜了...

我们在日常工作中,利用Excel制作的表格通过会填充颜色,设置字体和边框格式、颜色,把表格弄的漂漂亮亮的,一个是为了缓解视觉疲劳,另一个是为了老板看到漂亮的表格一不小心加工资呢,但是一个问题出来了&…

常用的分隔符有哪三种_加固博士:常用防水材料大比拼,究竟花落谁家?

建筑物漏水问题,是日常生活中非常常见的问题,房屋漏水怎么办才好呢?这个问题困扰了很多人,有些户主会图个省事,将漏水问题直接交给装修公司,只要愿意支付防水施工费用,装修公司就会安排资深的师…

互联网大脑,城市大脑的“大脑”究竟什么含义?

来源:刘锋的未来课堂21世纪以来,科技领域与一个神经学领域的概念 “大脑”出现了意外的结合,涌现出诸多前沿科技的大脑概念。从互联网大脑,城市大脑,到谷歌大脑,百度大脑,讯飞超脑、360安全大脑…

电脑fps低怎么办_电脑想要英雄联盟玩的流畅,主要看哪几个方面?

刚刚在找素材的时候,看到有个兄弟在某乎上说打英雄联盟有点卡,换个固态硬盘能不能提升游戏体验。在看到这个问题之后,小编发现原来还有很多电脑小白不知道什么东西会影响游戏体验。所以今天我就大概说一下玩英雄联盟这款游戏看重的地方吧。小…

使用代理下载Unity AssetStore上资源的方法

Unity的AssetStore下载package的时候经常抽风,而且开了代理工具的全局代理依然无效。 检索网络后得知,这是因为它下载的时候不检测IE代理设置,而是取环境变量中HTTPS_proxy和HTTP_proxy的值,所以添加这两个变量并指定其为你的代理…

2019华为全联接大会(汇总)

来源:龙为科技2019年9月18-20日,华为公司在上海举办第四届华为全联接大会(HUAWEI CONNECT),发布云和AI的最新产品与解决方案,分享如何应用云和AI的技术,推进数字化转型的最新实践。华为首次发布整体计算战略…

xlwings 合并单元格 读取_xlwings,让excel飞起来

excel已经成为必不可少的数据处理软件,几乎天天在用。python有很多支持操作excel的第三方库,xlwings是其中一个。关于xlwingsxlwings开源免费,能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改。xlwings还可以和…

一棵树的生物量怎么算_宾利的眼镜盒价值2万,算坑人吗?网友:良心产品,不坑穷人...

阅读本文前,请您先点击上面的蓝色字体“总李谈车”,再点击“关注”,这样您就可以继续免费收到文章了。每天都有分享,完全是免费订阅,请放心关注。原创持续更新“第1991天”宾利,全球顶级豪车之一&#xff0…