<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.riguz.com/index.php?action=history&amp;feed=atom&amp;title=OAuth2_FAQ</id>
	<title>OAuth2 FAQ - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.riguz.com/index.php?action=history&amp;feed=atom&amp;title=OAuth2_FAQ"/>
	<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=OAuth2_FAQ&amp;action=history"/>
	<updated>2026-06-02T21:10:33Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.riguz.com/index.php?title=OAuth2_FAQ&amp;diff=3441&amp;oldid=prev</id>
		<title>Riguz：​Riguz moved page Blog:OAuth 2.0的一些问题 to OAuth2 FAQ without leaving a redirect</title>
		<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=OAuth2_FAQ&amp;diff=3441&amp;oldid=prev"/>
		<updated>2023-12-06T01:58:32Z</updated>

		<summary type="html">&lt;p&gt;Riguz moved page &lt;a href=&quot;/index.php?title=Blog:OAuth_2.0%E7%9A%84%E4%B8%80%E4%BA%9B%E9%97%AE%E9%A2%98&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Blog:OAuth 2.0的一些问题（页面不存在）&quot;&gt;Blog:OAuth 2.0的一些问题&lt;/a&gt; to &lt;a href=&quot;/OAuth2_FAQ&quot; title=&quot;OAuth2 FAQ&quot;&gt;OAuth2 FAQ&lt;/a&gt; without leaving a redirect&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2023年12月6日 (三) 01:58的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;zh-Hans-CN&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;（没有差异）&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wiki_db:diff:1.41:old-3440:rev-3441 --&gt;
&lt;/table&gt;</summary>
		<author><name>Riguz</name></author>
	</entry>
	<entry>
		<id>https://wiki.riguz.com/index.php?title=OAuth2_FAQ&amp;diff=3440&amp;oldid=prev</id>
		<title>2023年12月6日 (三) 01:58 Riguz</title>
		<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=OAuth2_FAQ&amp;diff=3440&amp;oldid=prev"/>
		<updated>2023-12-06T01:58:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2023年12月6日 (三) 01:58的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l85&quot;&gt;第85行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第85行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Network]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Network]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:HTTP]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Protocol]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_db:diff:1.41:old-2523:rev-3440:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Riguz</name></author>
	</entry>
	<entry>
		<id>https://wiki.riguz.com/index.php?title=OAuth2_FAQ&amp;diff=2523&amp;oldid=prev</id>
		<title>Riguz：​/* id_token可以当access_token使用么 */</title>
		<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=OAuth2_FAQ&amp;diff=2523&amp;oldid=prev"/>
		<updated>2021-07-12T13:27:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;id_token可以当access_token使用么&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2021年7月12日 (一) 13:27的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l84&quot;&gt;第84行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第84行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://openid.net/specs/openid-connect-core-1_0.html OpenID Connect Core 1.0 incorporating errata set 1]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://openid.net/specs/openid-connect-core-1_0.html OpenID Connect Core 1.0 incorporating errata set 1]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Web&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Network&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_db:diff:1.41:old-2522:rev-2523:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Riguz</name></author>
	</entry>
	<entry>
		<id>https://wiki.riguz.com/index.php?title=OAuth2_FAQ&amp;diff=2522&amp;oldid=prev</id>
		<title>Riguz：​/* Token相关 */</title>
		<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=OAuth2_FAQ&amp;diff=2522&amp;oldid=prev"/>
		<updated>2021-04-30T07:05:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Token相关&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2021年4月30日 (五) 07:05的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l83&quot;&gt;第83行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第83行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://www.scottbrady91.com/OAuth/OAuth-is-Not-Authentication OAuth is Not Authentication]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://www.scottbrady91.com/OAuth/OAuth-is-Not-Authentication OAuth is Not Authentication]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://openid.net/specs/openid-connect-core-1_0.html OpenID Connect Core 1.0 incorporating errata set 1]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://openid.net/specs/openid-connect-core-1_0.html OpenID Connect Core 1.0 incorporating errata set 1]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Web]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Riguz</name></author>
	</entry>
	<entry>
		<id>https://wiki.riguz.com/index.php?title=OAuth2_FAQ&amp;diff=2521&amp;oldid=prev</id>
		<title>imported&gt;Riguz：​OAuth2或者OIDC是一个比较复杂的问题，但是很多人用的时候都是一知半解，所以出现一些不正确或者不建议的做法。</title>
		<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=OAuth2_FAQ&amp;diff=2521&amp;oldid=prev"/>
		<updated>2020-12-01T00:00:00Z</updated>

		<summary type="html">&lt;p&gt;OAuth2或者OIDC是一个比较复杂的问题，但是很多人用的时候都是一知半解，所以出现一些不正确或者不建议的做法。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;OAuth2或者OIDC是一个比较复杂的问题，但是很多人用的时候都是一知半解，所以出现一些不正确或者不建议的做法。&lt;br /&gt;
&lt;br /&gt;
= 应用场景=&lt;br /&gt;
&lt;br /&gt;
一个是在什么情况下应该使用OAuth/OIDC的问题。&lt;br /&gt;
&lt;br /&gt;
[[File:OAuth_OIDC_cases.png|600px|Cases]]&lt;br /&gt;
&lt;br /&gt;
* 第一种是应用自己完成认证授权的流程，通常的做法是通过用户名和密码登录认证；然后通过规则来判断用户是否有权限进行某些操作；这种跟OAuth没有半毛线关系&lt;br /&gt;
* 第二种是，在第一种的基础上，应用也希望能够通过第三方登录（但同时自己也有一套用户机制），也就是典型的“social login”，那么应该考虑使用OIDC&lt;br /&gt;
* 第三种是应用自己没有用户体系，需要借助第三方来进行认证，但应用自己管理资源。这种情况下也需要用OIDC来进行登陆认证，跟第二种没有实质的区别&lt;br /&gt;
* 第四种是，在第一种的基础上，假设应用还需要访问一些其他的受保护的资源，比如你写博客的时候想用QQ空间的照片。那么应该通过OAuth2来获取对这个资源的访问权限即可&lt;br /&gt;
* 第五种情况，应用通过第三方进行认证，有自己的资源；但同时也需要访问其他受保护的资源。这里认证肯定还是需要通过OIDC来实现；访问受保护的资源使用OAuth2即可。对于用户自己的资源，可以根据自己的需要进行管理，而不需要通过什么access_token。&lt;br /&gt;
&lt;br /&gt;
这里有一个很大的误区就是，认为凡是授权都需要OAuth2，譬如第五种情况，的确我们通过OIDC完成认证体系；那么问题是，假设我访问自己的resource，是否需要走一遍OAuth2的流程？试想我们这么做，那么可能会变成这样：&lt;br /&gt;
&lt;br /&gt;
* 用户通过QQ登陆到你开发的一个博客网站，很开心，想自己去写博客什么的&lt;br /&gt;
* 用户现在想去看自己的博客，而你需要得到一个access_token，所以会弹出一个框告诉用户，你要访问你的博客，是否允许... 这不是很扯淡么。如果我认证之后每次都还需要这样做一次，那有什么意义存在呢？&lt;br /&gt;
* 好吧，假设说你用一个client credential的流程，这样应用自己可以去请求一个access_token了，不需要用户参与。这样是否可行呢？&lt;br /&gt;
&lt;br /&gt;
如果client app跟resource server是同一个应用，那么这样相当于我自己去拿一个token，然后我自己验证这个token，然后知道我是否有权限。且不论效率问题，唯一可能的场景就是必须要通过OAuth Server来获取用户的权限，但通常这些规则也必须要进行设置（那为什么要到OAuth中设置？这样通常代价更高）。&lt;br /&gt;
&lt;br /&gt;
如果client app跟resource server不是一个应用，这样做倒是可以实现一个统一的权限管理机制，不过，唯一的问题就是性能问题。&lt;br /&gt;
&lt;br /&gt;
= Token相关=&lt;br /&gt;
== Token的存储==&lt;br /&gt;
&lt;br /&gt;
=== Web APP===&lt;br /&gt;
* 如果应用有服务端，那么token存储在服务端。浏览器通过session跟服务器交互&lt;br /&gt;
* 如果没有服务端，那么id_token和access_token应该存储在浏览器的内存中&lt;br /&gt;
* 如果不得不存储在浏览器，那么可以通过加密之后存储在session cookie中&lt;br /&gt;
&lt;br /&gt;
[[File:https://images.ctfassets.net/cdy7uua7fh8z/6a4aA0TH8PJQpvhkLaGSIp/e38aae00318515f2a0efa0dfce24dca2/in-memory-token-storage.png|600px|Next.js]]&lt;br /&gt;
&lt;br /&gt;
=== Native/Mobile app===&lt;br /&gt;
可以存储在OS提供的安全存储中，例如：&lt;br /&gt;
&lt;br /&gt;
* 安卓中使用KeyStore&lt;br /&gt;
* iOS中使用KeyChain&lt;br /&gt;
&lt;br /&gt;
=== SPA单页应用===&lt;br /&gt;
跟Web APP一样，如果SPA有对应的后端支持，token应该存储在SPA的后端，但是SPA需要通过某种机制去获取这个token；如果没有对应的后端，那么只能存储在内存中。&lt;br /&gt;
&lt;br /&gt;
=== id_token可以当access_token使用么===&lt;br /&gt;
&lt;br /&gt;
id_token是由授权服务器颁发给client的，比如请求一个id_token的：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://authorization-server.com/authorize?&lt;br /&gt;
  response_type=code&lt;br /&gt;
  &amp;amp;client_id=egHuu4oJxgOLeBzPAQ9sXg4i&lt;br /&gt;
  &amp;amp;redirect_uri=https://www.oauth.com/playground/oidc.html&lt;br /&gt;
  &amp;amp;scope=openid+profile+email+photos&lt;br /&gt;
  &amp;amp;state=sRROJ_iPTam39Dc7&lt;br /&gt;
  &amp;amp;nonce=eFRvo_n5ecyYU_Sv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
最后得到的id_token是这样的：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;sub&amp;quot;: &amp;quot;concerned-caracal@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;Concerned Caracal&amp;quot;,&lt;br /&gt;
  &amp;quot;email&amp;quot;: &amp;quot;concerned-caracal@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;iss&amp;quot;: &amp;quot;https://pk-demo.okta.com/oauth2/default&amp;quot;,&lt;br /&gt;
  &amp;quot;aud&amp;quot;: &amp;quot;egHuu4oJxgOLeBzPAQ9sXg4i&amp;quot;,&lt;br /&gt;
  &amp;quot;iat&amp;quot;: 1600674514,&lt;br /&gt;
  &amp;quot;exp&amp;quot;: 1603266514,&lt;br /&gt;
  &amp;quot;amr&amp;quot;: [&lt;br /&gt;
    &amp;quot;pwd&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这里`aud`即client的id，是可以被client所信任的。而id_token不是设计给resource server使用的，所以显然不能使用id_token代替access_token。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
&lt;br /&gt;
* [https://auth0.com/docs/applications Applications in Auth0]&lt;br /&gt;
* [https://alexbilbie.com/guide-to-oauth-2-grants/ A Guide To OAuth 2.0 Grants]&lt;br /&gt;
* [https://openid.net/connect/faq/ OpenID Connect FAQ and Q&amp;amp;As]&lt;br /&gt;
* [https://auth0.com/docs/authorization/authentication-and-authorization Authentication and Authorization]&lt;br /&gt;
* [https://stackoverflow.com/questions/48544500/oauth-and-authentication OAuth and authentication]&lt;br /&gt;
* [https://www.scottbrady91.com/OAuth/OAuth-is-Not-Authentication OAuth is Not Authentication]&lt;br /&gt;
* [https://openid.net/specs/openid-connect-core-1_0.html OpenID Connect Core 1.0 incorporating errata set 1]&lt;/div&gt;</summary>
		<author><name>imported&gt;Riguz</name></author>
	</entry>
</feed>