You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzA7aC6SjiAOpAWOKfJDfVRY.woff2) format('woff2');
src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzBdwxCXfZpKo5kWAx_74bHs.woff2) format('woff2');
src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzJ6vnaPZw6nYDxM4SVEMFKg.woff2) format('woff2');
79
+
unicode-range: U+1F00-1FFF;
80
+
}
81
+
/* greek */
82
+
@font-face {
83
+
font-family:'Open Sans';
84
+
font-style: normal;
85
+
font-weight:700;
86
+
src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzPy1_HTwRwgtl1cPga3Fy3Y.woff2) format('woff2');
87
+
unicode-range: U+0370-03FF;
88
+
}
89
+
/* vietnamese */
90
+
@font-face {
91
+
font-family:'Open Sans';
92
+
font-style: normal;
93
+
font-weight:700;
94
+
src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzPgrLsWo7Jk1KvZser0olKY.woff2) format('woff2');
95
+
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
96
+
}
97
+
/* latin-ext */
98
+
@font-face {
99
+
font-family:'Open Sans';
100
+
font-style: normal;
101
+
font-weight:700;
102
+
src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzIjoYw3YTyktCCer_ilOlhE.woff2) format('woff2');
src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzBampu5_7CjHW5spxoeN3Vs.woff2) format('woff2');
<h4>1.1.2.5 MapClientStorage mapping the client store interface</h4>
117
+
<blockquote>
118
+
<p>Client information storage, need to be determined according to the specific business scenarios, here temporarily does not provide specific implementation</p>
<h4>1.2.2.10 SetAccessTokenExpHandler set expiration date for the access token</h4>
168
+
<pre><codeclass="go">AccessTokenExpHandler func(w http.ResponseWriter, r *http.Request) (exp time.Duration, err error)</code></pre>
169
+
170
+
<h4>1.2.2.11 SetAuthorizeScopeHandler set the authorized scope</h4>
171
+
<pre><codeclass="go">AuthorizeScopeHandler func(w http.ResponseWriter, r *http.Request) (scope string, err error)</code></pre>
172
+
173
+
<h2>1.3 Create the HTTP listener service</h2>
174
+
175
+
<h3>1.3.1 The authorization request processing</h3>
176
+
<pre><codeclass="go">
177
+
http.HandleFunc("/authorize", func(w http.ResponseWriter, r *http.Request) {
178
+
err := srv.HandleAuthorizeRequest(w, r)
179
+
if err != nil {
180
+
http.Error(w, err.Error(), http.StatusBadRequest)
181
+
}
182
+
})
183
+
</code></pre>
184
+
185
+
<h3>1.3.2 The token request processing</h3>
186
+
<pre><codeclass="go">
187
+
http.HandleFunc("/token", func(w http.ResponseWriter, r *http.Request) {
188
+
err := srv.HandleTokenRequest(w, r)
189
+
if err != nil {
190
+
http.Error(w, err.Error(), http.StatusBadRequest)
191
+
}
192
+
})
193
+
</code></pre>
23
194
24
195
<footerclass="site-footer">
25
-
<spanclass="site-footer-owner"><ahref="https://github.com/jasonlong/cayman-theme">Cayman</a> is maintained by <ahref="https://github.com/jasonlong">jasonlong</a>.</span>
26
196
<spanclass="site-footer-credits">This page was generated by <ahref="https://pages.github.com">GitHub Pages</a> using the <ahref="https://github.com/jasonlong/cayman-theme">Cayman theme</a> by <ahref="https://twitter.com/jasonlong">Jason Long</a>.</span>
0 commit comments