2019-08-16

index.html
<ul class="nav navbar-nav navbar-right">
<li><a href="https://github.com/login/oauth/authorize?client_id=2c28fc64c9407f52d7c4&redirect_uri=http://localhost:8080/callback&scope=user&state=1">登录</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false">我<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">消息中心</a></li>
<li><a href="#">个人资料</a></li>
<li><a href="#">退出登录</a></li>
</ul>

pom.xml

    <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp</artifactId>
        <version>3.14.1</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.59</version>
    </dependency>

GithubUser
package life.majiang.community.community.dto;

public class GithubUser {
private String name;
private Long id;
private String bio;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getBio() {
    return bio;
}

public void setBio(String bio) {
    this.bio = bio;
}

}

package life.majiang.community.community.dto;

public class AccessTokenDTO {
private String client_id;
private String client_secret;
private String code;
private String redirect_uri;
private String state;

public String getClient_id() {
    return client_id;
}

public void setClient_id(String client_id) {
    this.client_id = client_id;
}

public String getClient_secret() {
    return client_secret;
}

public void setClient_secret(String client_secret) {
    this.client_secret = client_secret;
}

public String getCode() {
    return code;
}

public void setCode(String code) {
    this.code = code;
}

public String getRedirect_uri() {
    return redirect_uri;
}

public void setRedirect_uri(String redirect_uri) {
    this.redirect_uri = redirect_uri;
}

public String getState() {
    return state;
}

public void setState(String state) {
    this.state = state;
}

}

package life.majiang.community.community.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class IndexController {

@GetMapping("/")
public String index(){
    return "index";
}

}

package life.majiang.community.community.controller;

import life.majiang.community.community.dto.AccessTokenDTO;
import life.majiang.community.community.dto.GithubUser;
import life.majiang.community.community.provider.GithubProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class AuthorizeController {

@Autowired
private GithubProvider githubProvider;

@GetMapping("/callback")
public String callback(@RequestParam(name ="code") String code,
        @RequestParam(name ="state") String state){
    AccessTokenDTO accessTokenDTO = new AccessTokenDTO();
    accessTokenDTO.setClient_id("2c28fc64c9407f52d7c4");
    accessTokenDTO.setClient_secret("5c72fb6d6e474c53d9ee77806d07f0d7393c24cb");
    accessTokenDTO.setCode(code);
    accessTokenDTO.setRedirect_uri("http://localhost:8080/callback");
    accessTokenDTO.setState(state);
    String accessToken = githubProvider.getAccessToken(accessTokenDTO);
    GithubUser user = githubProvider.getUser(accessToken);
    System.out.println(user.getName());
    return "index";
}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容