AuthFeiShuRequestTest.java 2.7 KB
Newer Older
C
chengpengxiang 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
package me.zhyd.oauth.request;

import com.alibaba.fastjson.JSON;
import me.zhyd.oauth.config.AuthConfig;
import me.zhyd.oauth.model.AuthCallback;
import me.zhyd.oauth.model.AuthResponse;
import me.zhyd.oauth.model.AuthToken;
import me.zhyd.oauth.model.AuthUser;
import me.zhyd.oauth.utils.AuthStateUtils;
import org.junit.Assert;
import org.junit.Test;

/**
 * @ClassName AuthFeiShuRequestTest
 * @Author jackcheng(chen781142032@gamil.com)
 * @version 1.0
 * @since 1.16.5
 * @Date 2022/10/1 11:23
 * @Description 飞书第三方登录测试类 先执行authorize()方法获取state以及authorizeUrl,
 * 然后在浏览器中打开authorizeUrl,登录成功后会跳转到redirectUri,并且会携带code和state参数
 **/
public class AuthFeiShuRequestTest {

    @Test
    public void authorize() {
        AuthRequest request = new AuthFeishuRequest(AuthConfig.builder()
            .clientId("your App ID")
            .clientSecret("your App Secret")
            .redirectUri("you set redirect uri")
            .build());
        String state = AuthStateUtils.createState();
        System.out.println("state==" + state);
        String authorize = request.authorize(state);
        System.out.println("authorize==" + authorize);
    }

    @Test
    public void getAccessTokenAndUserInfo() {
        AuthRequest request = new AuthFeishuRequest(AuthConfig.builder()
            .clientId("your App ID")
            .clientSecret("your App Secret")
            .redirectUri("you set redirect uri")
            .build());

        String state = "your state";

        AuthCallback callback = AuthCallback.builder()
            .code("your code")
            .state(state)
            .build();
        AuthToken accessToken = ((AuthFeishuRequest) request).getAccessToken(callback);
        System.out.println("token==" + accessToken.getAccessToken());

        AuthUser userInfo = ((AuthFeishuRequest) request).getUserInfo(accessToken);
        System.out.println("userInfo==" + JSON.toJSONString(userInfo));

    }

    @Test
    public void login() {
        AuthRequest request = new AuthFeishuRequest(AuthConfig.builder()
            .clientId("your App ID")
            .clientSecret("your App Secret")
            .redirectUri("you set redirect uri")
            .build());

        String state = "your state";
        request.authorize(state);
        AuthCallback callback = AuthCallback.builder()
            .code("your code")
            .state(state)
            .build();
        AuthResponse response = request.login(callback);
        Assert.assertNotNull(response);
        AuthUser user = (AuthUser) response.getData();
        Assert.assertNotNull(user);
        System.out.println(JSON.toJSONString(user));
    }

}