本系列文之後也会置於个人网站
光要完成这个范例就花了几乎整整一天
做完後决定...来拆篇
这第二部份,将有部份内容会在【实战篇】展开。
今天就先来看看成果。
在这次的范例应用中,同样是简单的「Hello, Bob.」。在应用一开始仅仅是起始画面:
在点击「登入」後,应用会先与授权服务器沟通(後端通讯),先行取得device_code
和user_code
。接着应用会将user_code
交给使用者,也就是下图里的TEDG-VRMU
。
并且会给与一个登入连接,可以输入这个代码:
输入代码後就可以登入授权。接着应用就会取得存取权杖,像使用者Say Hello~
除此之外,还可以透过手机扫描QR Code登入。
不过需要将授权服务器也可以与手机沟通。 在学习实验上,可以将
http://localhost:8080
改成区域网路的IP --http://192.168.x.x:8080
,比如:http://192.168.1.103:8080
实际上这个QR Code储存的资讯就只是一个包含user_code
的特殊登入连结 -- http://localhost:8080/auth/realms/quick-start/device?user_code=TEDG-VRMU
。
接着来看一下其他类似登入方式的应用。
QR Code同样是一个特殊连结: https://discord.com/ra/XRwgIWiSKLz22RRDQR4Zg61CKDzFE6CX8KW3jj4rxhc
QR Code同样是一个特殊连结: https://line.me/R/au/q/SQ4b7330474737387673564b76775468366b6f4e436f624236474a31444e487339?secret=GjqDoowV9nLHjXuxXlmWQTNIOrt0usSjd99vs3GdKXc%3D&e2eeVersion=1
Telegram得到的结果比较特别,但同样是URI: tg://login?token=AQXTX1lhVEI6pbRlA3HLtBz6wnrH6TGkpjwcBj7t6Cek4A==
。这个URI在桌面或手机浏览器开啓时,若有适当注册,同样会在开始特定应用程序。
在「深入OAuth 2.0」提到的「特殊密码」提到过一些相似的形式:
- 透过简讯验证: 透过简讯寄送一组限时且只能使用一次的密码
- 透过信箱验证: 透过信箱寄送一组限时且只能使用一次的密码
- 特殊连接验证: 透过一个特殊的连接,该连接有时效性,且只能存取一次。
- 透过时间产生特殊密码: TOTP, Time-base One Time Password。
- 透过杂凑产生特殊密码: HOTP, HMAC-based One Time Password。
- 与系统服务约定好数组一次性密码
- 与系统服务约定好特殊状况使用密码
- 使用行动装置登入
虽然不存在QR Code,但Medium、Notion同样可以透过特殊连接登入。非常像这里体到的Device Code模式。
如果你有使用过Medium、Notion 、
Tumblr的话,他们都可以透过信箱寄送一个 神奇的连接 让你登入。
最後一些细节,将会在【实战篇】在详细展开讨论。
>>: Day22 跟着官方文件学习Laravel-Hash
今天我们来实作怎麽『 透过 AWS 服务把 Google Analytics 资料撷取存放至 AWS...
前言 在公司内部总是有大大小小的提案,每个提案都有拥护的人,但是大家各说各话,没有办法公平的做出决定...
系列文章主要是为了练习规律产出,实验性质比较重一点, 内容会根据目前的反馈做出一点改变,欢迎感兴趣的...
2021 未来商务展 5月13 ~ 5月15日 台北圆山花博争艳馆 https://www.futu...
Same-Origin Policy 同源政策 浏览器基於安全性的考量,在应用fetch API或是...