使用gitee进行第三方登录
<p class="md-end-block md-p"><span class="md-pair-s md-expand"><strong>问题:</strong><span class="md-plain">gitee第三方登录</span></span></p><p class="md-end-block md-p"><span class="md-pair-s "><strong>解决方法:</strong><span class="md-plain">调用API,</span></span></p>
<p class="md-end-block md-p"><span class="md-pair-s "><span class="md-plain"><img src="https://img2020.cnblogs.com/blog/2335942/202109/2335942-20210914104247965-2032690621.png"></span></span></p>
<p class="md-end-block md-p"> </p>
<p class="md-end-block md-p"> </p>
<pre class="md-fences md-end-block ty-contain-cm modeLoaded"><span><span class="cm-variable">gitee做第三方登录的大致过程为:首先,在码云端创建一个第三方应用,生成id,secret,并且填写我们系统的主页地址和回调地址,通过一个超链接跳转至码云授权页面,<br>点击授权之后码云服务器会返回到我们所填写的回调地址中并且携带两个参数,一个是code,一个是state,然后我们携带code,state,和生成的相关条目,<br>如id,secret等请求token,码云服务器收到请求之后返回token,然后我们携带token再次访问码云服务器,服务器给我们返回相关的用户信息。</span></span></pre>
<p class="md-end-block md-p"> </p>
<p class="md-end-block md-p md-focus"><span class="md-plain md-expand">1.首先,在gitee创建一个第三方应用。</span></p>
<p class="md-end-block md-p md-focus"><span class="md-plain md-expand"><img src="https://img2020.cnblogs.com/blog/2335942/202109/2335942-20210914104106000-438402363.png"></span></p>
<p class="md-end-block md-p"><span class="md-plain">2.找到第三方应用,并点击右上角的创建应用。</span></p>
<p class="md-end-block md-p"><img src="https://img2020.cnblogs.com/blog/2335942/202109/2335942-20210914104124488-1870914010.png"></p>
<p class="md-end-block md-p"><span class="md-plain"><img src="https://img2020.cnblogs.com/blog/2335942/202109/2335942-20210914104139997-410388435.png"></span></p>
<p class="md-end-block md-p"><span class="md-plain">3.填写相关信息,创建应用,只勾选第一个权限即可。</span></p>
<p class="md-end-block md-p"><span class="md-plain"><img src="https://img2020.cnblogs.com/blog/2335942/202109/2335942-20210914104154095-1854276764.png"></span></p>
<p class="md-end-block md-p"><span class="md-plain">4.生成相关信息</span></p>
<p class="md-end-block md-p"><span class="md-plain"><img src="https://img2020.cnblogs.com/blog/2335942/202109/2335942-20210914104206248-542486317.png"></span></p>
<p class="md-end-block md-p"><span class="md-plain">至此,gitee上的第三方应用创建完毕。</span></p>
<p class="md-end-block md-p"><span class="md-plain">5.在页面上使用连结到gitee的某个地址,在这个地址上需要填入上面生成的client—id,redirect—uri。</span></p>
<pre class="md-fences md-end-block ty-contain-cm modeLoaded"><span><span class="cm-operator"><<span class="cm-variable">a <span class="cm-variable">href<span class="cm-operator">=<span class="cm-string">"https://gitee.com/oauth/authorize?client_id=你的id&redirect_uri=http://localhost:8887/callback&response_type=code&state=1"<span class="cm-operator">><span class="cm-variable">登录<span class="cm-operator"></<span class="cm-variable">a<span class="cm-operator">></span></span></span></span></span></span></span></span></span></span></span></pre>
<p class="md-end-block md-p"><span class="md-plain">6.点击登录会跳转至授权页面,如果授权成功跳转404说明链接地址正确,接下来需要 编写回调请求及其方法。</span></p>
<p class="md-end-block md-p"><span class="md-plain">7.首先,引入两个相关依赖。</span></p>
<pre class="md-fences md-end-block ty-contain-cm modeLoaded"><span><span class="cm-operator"><<span class="cm-variable">dependency<span class="cm-operator">><br><span> <span class="cm-operator"><<span class="cm-variable">groupId<span class="cm-operator">><span class="cm-variable">com.<span class="cm-variable">squareup.<span class="cm-variable">okhttp3<span class="cm-operator"></<span class="cm-variable">groupId<span class="cm-operator">><br><span> <span class="cm-operator"><<span class="cm-variable">artifactId<span class="cm-operator">><span class="cm-variable">okhttp<span class="cm-operator"></<span class="cm-variable">artifactId<span class="cm-operator">><br><span> <span class="cm-operator"><<span class="cm-variable">version<span class="cm-operator">><span class="cm-number">3.14.<span class="cm-number">1<span class="cm-operator"></<span class="cm-variable">version<span class="cm-operator">><br><span> <span class="cm-operator"></<span class="cm-variable">dependency<span class="cm-operator">><br><span> <span class="cm-operator"><!-- <span class="cm-variable">https:<span class="cm-comment">//mvnrepository.com/artifact/com.alibaba/fastjson --><br><span> <span class="cm-operator"><<span class="cm-variable">dependency<span class="cm-operator">><br><span> <span class="cm-operator"><<span class="cm-variable">groupId<span class="cm-operator">><span class="cm-variable">com.<span class="cm-variable">alibaba<span class="cm-operator"></<span class="cm-variable">groupId<span class="cm-operator">><br><span> <span class="cm-operator"><<span class="cm-variable">artifactId<span class="cm-operator">><span class="cm-variable">fastjson<span class="cm-operator"></<span class="cm-variable">artifactId<span class="cm-operator">><br><span> <span class="cm-operator"><<span class="cm-variable">version<span class="cm-operator">><span class="cm-number">1.2.<span class="cm-number">78<span class="cm-operator"></<span class="cm-variable">version<span class="cm-operator">><br><span> <span class="cm-operator"></<span class="cm-variable">dependency<span class="cm-operator">></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
<p class="md-end-block md-p"><span class="md-plain">8.使用okhttp发起post请求,码云服务器返回token,需要携带相关参数,我们直接封装成一个AccessTokenDTO对象,接下来我们还需要使用token获取用户相关信息,将用户也封装成一个GitUser对象。</span></p>
<pre class="md-fences md-end-block ty-contain-cm modeLoaded"><span><span class="cm-variable">AccessTokenDTO对象封装<br><span><span class="cm-keyword">package <span class="cm-def">com.<span class="cm-variable">yf.<span class="cm-variable">community.<span class="cm-variable">dto;<br><span><span><br><span><span class="cm-keyword">import <span class="cm-variable">org.<span class="cm-variable">springframework.<span class="cm-variable">stereotype.<span class="cm-variable">Component;<br><span><span><br><span><span class="cm-meta">@Component<br><span><span class="cm-keyword">public <span class="cm-keyword">class <span class="cm-def">AccessTokenDTO {<br><span> <span class="cm-keyword">private <span class="cm-variable-3">String <span class="cm-variable">client_id;<br><span> <span class="cm-keyword">private <span class="cm-variable-3">String <span class="cm-variable">client_secret;<br><span> <span class="cm-keyword">private <span class="cm-variable-3">String <span class="cm-variable">code;<br><span> <span class="cm-keyword">private <span class="cm-variable-3">String <span class="cm-variable">redirect_uri;<br><span> <span class="cm-keyword">private <span class="cm-variable-3">String <span class="cm-variable">state;<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">String <span class="cm-variable">getClient_id() {<br><span> <span class="cm-keyword">return <span class="cm-variable">client_id;<br><span> }<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">void <span class="cm-variable">setClient_id(<span class="cm-variable-3">String <span class="cm-variable">client_id) {<br><span> <span class="cm-keyword">this.<span class="cm-variable">client_id <span class="cm-operator">= <span class="cm-variable">client_id;<br><span> }<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">String <span class="cm-variable">getClient_secret() {<br><span> <span class="cm-keyword">return <span class="cm-variable">client_secret;<br><span> }<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">void <span class="cm-variable">setClient_secret(<span class="cm-variable-3">String <span class="cm-variable">client_secret) {<br><span> <span class="cm-keyword">this.<span class="cm-variable">client_secret <span class="cm-operator">= <span class="cm-variable">client_secret;<br><span> }<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">String <span class="cm-variable">getCode() {<br><span> <span class="cm-keyword">return <span class="cm-variable">code;<br><span> }<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">void <span class="cm-variable">setCode(<span class="cm-variable-3">String <span class="cm-variable">code) {<br><span> <span class="cm-keyword">this.<span class="cm-variable">code <span class="cm-operator">= <span class="cm-variable">code;<br><span> }<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">String <span class="cm-variable">getRedirect_uri() {<br><span> <span class="cm-keyword">return <span class="cm-variable">redirect_uri;<br><span> }<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">void <span class="cm-variable">setRedirect_uri(<span class="cm-variable-3">String <span class="cm-variable">redirect_uri) {<br><span> <span class="cm-keyword">this.<span class="cm-variable">redirect_uri <span class="cm-operator">= <span class="cm-variable">redirect_uri;<br><span> }<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">String <span class="cm-variable">getState() {<br><span> <span class="cm-keyword">return <span class="cm-variable">state;<br><span> }<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">void <span class="cm-variable">setState(<span class="cm-variable-3">String <span class="cm-variable">state) {<br><span> <span class="cm-keyword">this.<span class="cm-variable">state <span class="cm-operator">= <span class="cm-variable">state;<br><span> }<br><span>}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
<p class="md-end-block md-p"><span class="md-plain">GiteeUser对象封装。</span></p>
<pre class="md-fences md-end-block ty-contain-cm modeLoaded"><span><span class="cm-keyword">package <span class="cm-def">com.<span class="cm-variable">yf.<span class="cm-variable">community.<span class="cm-variable">dto;<br><span><span><br><span><span class="cm-keyword">public <span class="cm-keyword">class <span class="cm-def">GiteeUser {<br><span> <span class="cm-keyword">private <span class="cm-variable-3">String <span class="cm-variable">name;<br><span> <span class="cm-keyword">private <span class="cm-variable-3">Long <span class="cm-variable">id;<br><span> <span class="cm-keyword">private <span class="cm-variable-3">String <span class="cm-variable">bio;<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">String <span class="cm-variable">getName() {<br><span> <span class="cm-keyword">return <span class="cm-variable">name;<br><span> }<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">void <span class="cm-variable">setName(<span class="cm-variable-3">String <span class="cm-variable">name) {<br><span> <span class="cm-keyword">this.<span class="cm-variable">name <span class="cm-operator">= <span class="cm-variable">name;<br><span> }<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">Long <span class="cm-variable">getId() {<br><span> <span class="cm-keyword">return <span class="cm-variable">id;<br><span> }<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">void <span class="cm-variable">setId(<span class="cm-variable-3">Long <span class="cm-variable">id) {<br><span> <span class="cm-keyword">this.<span class="cm-variable">id <span class="cm-operator">= <span class="cm-variable">id;<br><span> }<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">String <span class="cm-variable">getBio() {<br><span> <span class="cm-keyword">return <span class="cm-variable">bio;<br><span> }<br><span><span><br><span> <span class="cm-keyword">public <span class="cm-variable-3">void <span class="cm-variable">setBio(<span class="cm-variable-3">String <span class="cm-variable">bio) {<br><span> <span class="cm-keyword">this.<span class="cm-variable">bio <span class="cm-operator">= <span class="cm-variable">bio;<br><span> }<br><span>}<br><span><span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
<p class="md-end-block md-p"> </p>
<p class="md-end-block md-p"><span class="md-plain">请求码云服务器</span></p>
<pre class="md-fences md-end-block ty-contain-cm modeLoaded"><span><span class="cm-keyword">package <span class="cm-def">com.<span class="cm-variable">yf.<span class="cm-variable">community.<span class="cm-variable">provider;<br><span><span><br><span><span><br><span><span class="cm-keyword">import <span class="cm-variable">com.<span class="cm-variable">alibaba.<span class="cm-variable">fastjson.<span class="cm-variable">JSON;<br><span><span class="cm-keyword">import <span class="cm-variable">com.<span class="cm-variable">yf.<span class="cm-variable">community.<span class="cm-variable">dto.<span class="cm-variable">AccessTokenDTO;<br><span><span class="cm-keyword">import <span class="cm-variable">com.<span class="cm-variable">yf.<span class="cm-variable">community.<span class="cm-variable">dto.<span class="cm-variable">GiteeUser;<br><span><span class="cm-keyword">import <span class="cm-variable">okhttp3.<span class="cm-operator">*;<br><span><span class="cm-keyword">import <span class="cm-variable">org.<span class="cm-variable">springframework.<span class="cm-variable">stereotype.<span class="cm-variable">Component;<br><span><span><br><span><span class="cm-keyword">import <span class="cm-variable">java.<span class="cm-variable">io.<span class="cm-variable">IOException;<br><span><span><br><span><span class="cm-meta">@Component<br><span><span class="cm-keyword">public <span class="cm-keyword">class <span class="cm-def">GitheeProvider {<br><span> <span class="cm-comment">//发起post请求获取token<br><span> <span class="cm-keyword">public <span class="cm-variable-3">String <span class="cm-variable">getAccessToken(<span class="cm-variable">AccessTokenDTO <span class="cm-variable">accessTokenDTO){<br><span> <span class="cm-variable">MediaType <span class="cm-variable">mediaType<span class="cm-operator">= <span class="cm-variable">MediaType.<span class="cm-variable">get(<span class="cm-string">"application/json; charset=utf-8");<br><span> <span class="cm-variable">OkHttpClient <span class="cm-variable">client <span class="cm-operator">= <span class="cm-keyword">new <span class="cm-variable">OkHttpClient();<br><span> <span class="cm-variable">RequestBody <span class="cm-variable">body <span class="cm-operator">= <span class="cm-variable">RequestBody.<span class="cm-variable">create(<span class="cm-variable">mediaType, <span class="cm-variable">JSON.<span class="cm-variable">toJSONString(<span class="cm-variable">accessTokenDTO));<br><span> <span class="cm-variable">Request <span class="cm-variable">request <span class="cm-operator">= <span class="cm-keyword">new <span class="cm-variable">Request.<span class="cm-variable">Builder()<br><span> .<span class="cm-variable">url(<span class="cm-string">"https://gitee.com/oauth/token?grant_type=authorization_code&code="<span class="cm-operator">+<span class="cm-variable">accessTokenDTO.<span class="cm-variable">getCode()<span class="cm-operator">+<br><span> <span class="cm-string">"&client_id="<span class="cm-operator">+<span class="cm-variable">accessTokenDTO.<span class="cm-variable">getClient_id()<span class="cm-operator">+<span class="cm-string">"&redirect_uri="<span class="cm-operator">+<span class="cm-variable">accessTokenDTO.<span class="cm-variable">getRedirect_uri()<span class="cm-operator">+<br><span> <span class="cm-string">"&client_secret="<span class="cm-operator">+<span class="cm-variable">accessTokenDTO.<span class="cm-variable">getClient_secret())<br><span> .<span class="cm-variable">post(<span class="cm-variable">body)<br><span> .<span class="cm-variable">build();<br><span> <span class="cm-keyword">try (<span class="cm-variable">Response <span class="cm-variable">response <span class="cm-operator">= <span class="cm-variable">client.<span class="cm-variable">newCall(<span class="cm-variable">request).<span class="cm-variable">execute()) {<br><span> <span class="cm-variable-3">String <span class="cm-variable">string <span class="cm-operator">= <span class="cm-variable">response.<span class="cm-variable">body().<span class="cm-variable">string();<br><span> <span class="cm-variable">System.<span class="cm-variable">out.<span class="cm-variable">println(<span class="cm-variable">string);<br><span> <span class="cm-variable-3">String <span class="cm-variable">str1 <span class="cm-operator">= <span class="cm-variable">string.<span class="cm-variable">split(<span class="cm-string">":")[<span class="cm-number">1];<br><span> <span class="cm-variable-3">String <span class="cm-variable">str2 <span class="cm-operator">= <span class="cm-variable">str1.<span class="cm-variable">split(<span class="cm-string">"\"")[<span class="cm-number">1];<br><span> <span class="cm-keyword">return <span class="cm-variable">str2;<br><span> } <span class="cm-keyword">catch (<span class="cm-variable">IOException <span class="cm-variable">e) {<br><span> <span class="cm-variable">e.<span class="cm-variable">printStackTrace();<br><span> }<br><span> <span class="cm-keyword">return <span class="cm-atom">null;<br><span> }<br><span> <span class="cm-comment">//发起get请求返回GitUser对象,<br><span> <span class="cm-keyword">public <span class="cm-variable">GiteeUser <span class="cm-variable">getGiteeUser(<span class="cm-variable-3">String <span class="cm-variable">token){<br><span> <span class="cm-variable">OkHttpClient <span class="cm-variable">client <span class="cm-operator">= <span class="cm-keyword">new <span class="cm-variable">OkHttpClient();<br><span> <span class="cm-variable">Request <span class="cm-variable">request <span class="cm-operator">= <span class="cm-keyword">new <span class="cm-variable">Request.<span class="cm-variable">Builder()<br><span> .<span class="cm-variable">url(<span class="cm-string">"https://gitee.com/api/v5/user?access_token="<span class="cm-operator">+<span class="cm-variable">token)<br><span> .<span class="cm-variable">build();<br><span> <span class="cm-keyword">try (<span class="cm-variable">Response <span class="cm-variable">response <span class="cm-operator">= <span class="cm-variable">client.<span class="cm-variable">newCall(<span class="cm-variable">request).<span class="cm-variable">execute()) {<br><span> <span class="cm-variable-3">String <span class="cm-variable">string<span class="cm-operator">=<span class="cm-variable">response.<span class="cm-variable">body().<span class="cm-variable">string();<br><span> <span class="cm-variable">GiteeUser <span class="cm-variable">giteeUser <span class="cm-operator">= <span class="cm-variable">JSON.<span class="cm-variable">parseObject(<span class="cm-variable">string, <span class="cm-variable">GiteeUser.<span class="cm-keyword">class);<br><span> <span class="cm-keyword">return <span class="cm-variable">giteeUser;<br><span> } <span class="cm-keyword">catch (<span class="cm-variable">IOException <span class="cm-variable">e) {<br><span> <span class="cm-variable">e.<span class="cm-variable">printStackTrace();<br><span> }<br><span> <span class="cm-keyword">return <span class="cm-atom">null;<br><span> }<br><span>}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
<p class="md-end-block md-p"><span class="md-plain">回调请求编写业务,成功返回我们需要的用户信息。</span></p>
<pre class="md-fences md-end-block ty-contain-cm modeLoaded"><span><span class="cm-keyword">package <span class="cm-def">com.<span class="cm-variable">yf.<span class="cm-variable">community.<span class="cm-variable">controller;<br><span><span><br><span><span class="cm-keyword">import <span class="cm-variable">com.<span class="cm-variable">yf.<span class="cm-variable">community.<span class="cm-variable">dto.<span class="cm-variable">AccessTokenDTO;<br><span><span class="cm-keyword">import <span class="cm-variable">com.<span class="cm-variable">yf.<span class="cm-variable">community.<span class="cm-variable">dto.<span class="cm-variable">GiteeUser;<br><span><span class="cm-keyword">import <span class="cm-variable">com.<span class="cm-variable">yf.<span class="cm-variable">community.<span class="cm-variable">provider.<span class="cm-variable">GitheeProvider;<br><span><span class="cm-keyword">import <span class="cm-variable">org.<span class="cm-variable">springframework.<span class="cm-variable">beans.<span class="cm-variable">factory.<span class="cm-variable">annotation.<span class="cm-variable">Autowired;<br><span><span class="cm-keyword">import <span class="cm-variable">org.<span class="cm-variable">springframework.<span class="cm-variable">stereotype.<span class="cm-variable">Controller;<br><span><span class="cm-keyword">import <span class="cm-variable">org.<span class="cm-variable">springframework.<span class="cm-variable">web.<span class="cm-variable">bind.<span class="cm-variable">annotation.<span class="cm-variable">GetMapping;<br><span><span class="cm-keyword">import <span class="cm-variable">org.<span class="cm-variable">springframework.<span class="cm-variable">web.<span class="cm-variable">bind.<span class="cm-variable">annotation.<span class="cm-variable">RequestParam;<br><span><span><br><span><span class="cm-meta">@Controller<br><span><span class="cm-keyword">public <span class="cm-keyword">class <span class="cm-def">AuthorizeController {<br><span> <span class="cm-meta">@Autowired<br><span> <span class="cm-keyword">private <span class="cm-variable">AccessTokenDTO <span class="cm-variable">accessTokenDTO;<br><span> <span class="cm-meta">@Autowired<br><span> <span class="cm-keyword">private <span class="cm-variable">GitheeProvider <span class="cm-variable">githeeProvider;<br><span> <span class="cm-meta">@GetMapping(<span class="cm-string">"/callback")<br><span> <span class="cm-keyword">public <span class="cm-variable-3">String <span class="cm-variable">callback(<span class="cm-meta">@RequestParam(<span class="cm-variable">name <span class="cm-operator">= <span class="cm-string">"code") <span class="cm-variable-3">String <span class="cm-variable">code,<br><span> <span class="cm-meta">@RequestParam(<span class="cm-variable">name <span class="cm-operator">= <span class="cm-string">"state") <span class="cm-variable-3">String <span class="cm-variable">state){<br><span> <span class="cm-variable">accessTokenDTO.<span class="cm-variable">setClient_id(<span class="cm-string">"你的id");<br><span> <span class="cm-variable">accessTokenDTO.<span class="cm-variable">setClient_secret(<span class="cm-string">"你的secret");<br><span> <span class="cm-variable">accessTokenDTO.<span class="cm-variable">setRedirect_uri(<span class="cm-string">"http://localhost:8887/callback");<br><span> <span class="cm-variable">accessTokenDTO.<span class="cm-variable">setCode(<span class="cm-variable">code);<br><span> <span class="cm-variable">accessTokenDTO.<span class="cm-variable">setState(<span class="cm-variable">state);<br><span> <span class="cm-variable-3">String <span class="cm-variable">token <span class="cm-operator">= <span class="cm-variable">githeeProvider.<span class="cm-variable">getAccessToken(<span class="cm-variable">accessTokenDTO);<br><span> <span class="cm-variable">GiteeUser <span class="cm-variable">giteeUser <span class="cm-operator">= <span class="cm-variable">githeeProvider.<span class="cm-variable">getGiteeUser(<span class="cm-variable">token);<br><span> <span class="cm-variable">System.<span class="cm-variable">out.<span class="cm-variable">println(<span class="cm-string">"id:"<span class="cm-operator">+<span class="cm-variable">giteeUser.<span class="cm-variable">getId());<br><span> <span class="cm-variable">System.<span class="cm-variable">out.<span class="cm-variable">println(<span class="cm-string">"name:"<span class="cm-operator">+<span class="cm-variable">giteeUser.<span class="cm-variable">getName());<br><span> <span class="cm-variable">System.<span class="cm-variable">out.<span class="cm-variable">println(<span class="cm-string">"bio:"<span class="cm-operator">+<span class="cm-variable">giteeUser.<span class="cm-variable">getBio());<br><span> <span class="cm-keyword">return <span class="cm-string">"index";<br><span> }<br><span>}<br><span><span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
<p><span><span> </span></span></p><br><br>
来源:https://www.cnblogs.com/yuan6yao/p/15266500.html
頁:
[1]