authing-java-sdk
3.1.4
username
使用id-token进行解析,始终都没有 username 字段
scope
默认设置AuthenticationClientOptions不起作用,始终都是默认的权限
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public AuthenticationClient authenticationClient() throws IOException, ParseException, ParseException {
//在构造函数中分别填入自己的 App ID、App Secret、APP Host。
AuthenticationClientOptions options = new AuthenticationClientOptions();
options.setAppId(YOUR_APP_ID); // 改成自己的 App ID
options.setAppSecret(YOUR_APP_SECRET); // 改成自己的 App Secret
options.setAppHost(YOUR_APP_HOST); // 设置自己的认证地址
// options.setRedirectUri("http://localhost:16800/callback"); // 填写之前设置的回调地址
// options.setProtocol(ProtocolEnum.OIDC.getValue());
// https://docs.authing.cn/v2/concepts/oidc-common-questions.html
options.setScope("openid profile offline_access username phone external_id extended_fields");
return new AuthenticationClient(options);
}
在登录接口设置之后,每次都需要页面授权
@GetMapping("/login")
public String login() {
IOidcParams iOidcParams = new IOidcParams();
iOidcParams.setRedirectUri("http://localhost:16800/callback");
// 此处权限要在默认权限后用空格分隔,添加
// iOidcParams.setScope("openid profile email phone address ecs:Start");
// https://docs.authing.cn/v2/concepts/oidc-common-questions.html
iOidcParams.setScope("openid profile offline_access username phone external_id extended_fields");
return "redirect:" + authClientFactory.getObject().buildAuthorizeUrl(iOidcParams);
}