Springboot整合第三方登录

这篇具有很好参考价值的文章主要介绍了Springboot整合第三方登录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Springboot整合第三方登录

为什么采用第三方登录

​ 采用第三方登录可以避免重新注册账号的繁琐,也不需要再为密码和昵称发愁,而第三方登录有一个比较好用的包,里面整合了多种第三方登录,开箱即用,非常方便。就是JustAuth,网址https://www.justauth.cn/。

整合第三方登录
创建应用

​ 这里采用gitee进行测试,因为gitee不需要其他的东西,只需要你有一个账号就可以。注册一个gitee账号后,到这里(https://gitee.com/oauth/applications)创建一个应用。

Springboot整合第三方登录

  • 应用名称,这个根据自己的需要填,我测试使用就填了一个测试demo1

  • 应用描述可填可不填

  • 应用主页需要填一个已经上线的项目地址(这个不一定要填自己的项目,因为既然要整和第三方登录,那项目大概率是没上线的,这里可以随便填一个可用的网址,某度什么的都可以)

  • 应用回调地址这个不能随便填,这个地址是之后用户授权后的回调地址,这是我测试时填的http://localhost:8080/oauth/callback

  • 权限 根据页面提示操作,默认勾选第一个就行

Springboot整合第三方登录

创建成功后,可以在我的应用里面找到这个应用,里面的ClientID和ClientSecret是待会要用到的。

导入依赖
<!--引入第三方登录依赖-->
<dependency>
    <groupId>me.zhyd.oauth</groupId>
    <artifactId>JustAuth</artifactId>
    <version>1.16.5</version>
</dependency>
<!--引入处理json依赖-->
<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.7</version>
</dependency>
创建controller类
import me.zhyd.oauth.config.AuthConfig;
import me.zhyd.oauth.request.AuthGiteeRequest;
import me.zhyd.oauth.model.AuthCallback;
import me.zhyd.oauth.request.AuthRequest;
import me.zhyd.oauth.utils.AuthStateUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@RestController
@RequestMapping("/oauth")
public class RestAuthController {

    @RequestMapping("/render")//调用此接口来进行授权认证
    public void renderAuth(HttpServletResponse response) throws IOException {
        AuthRequest authRequest = getAuthRequest();
        response.sendRedirect(authRequest.authorize(AuthStateUtils.createState()));
    }

    @RequestMapping("/callback")
    //授权认证成功后会自动调用此接口,这个接口是创建应用时填写的回调接口
    public Object login(AuthCallback callback) {
        //可以对对象进行操作,比如取出里面得名称跟邮箱信息等等
        //我这里取出了昵称和邮箱
        AuthRequest authRequest = getAuthRequest();
        AuthResponse login = authRequest.login(callback);
        JSONObject remoteData = JSONObject.parseObject(JSON.toJSONString(login));
        Object gitEEUser = remoteData.get("data");
        JSONObject user = JSONObject.parseObject(JSON.toJSONString(gitEEUser));
        Object nickname = user.get("nickname");
        Object email = user.get("email");
        HashMap<String,Object> map = new HashMap<>();
        map.put("nickname",nickname);
        map.put("email",email);
        //TODO 数据库操作
        return map;
    }

    private AuthRequest getAuthRequest() {
        return new AuthGiteeRequest(AuthConfig.builder()
                .clientId("Client ID")//这些参数按自己的填即可
                .clientSecret("Client Secret")
                .redirectUri("应用回调地址")//这就是上面的那个接口地址,也是创建应用时写的那个
                .build());
    }
}

测试访问 localhost:8080/oauth/rander 接口,授权认证后,显示昵称和邮箱

Springboot整合第三方登录文章来源地址https://www.toymoban.com/news/detail-494601.html

到了这里,关于Springboot整合第三方登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SpringBoot】整合第三方技术Junit. MybatisPlus druid

    自己定义一个功能,测试功能接口 测试步骤 注入你要测试的对象 提前声明为bean资源 执行你要测试的方法 如果测试类在SpringBoot启动类的包或者子包中,可以省略启动类的设置们也就是省略classes的设定 新建一个模块 勾选MybatisFrameWork 和MySQL driver 记得一定要配置数据库连接信

    2024年02月06日
    浏览(45)
  • spring boot整合第三方微信开发工具 weixin-java-miniapp 实现小程序微信登录

    有时候项目需要用到微信登录或获取用户的手机号码,weixin-java-miniapp是一个好用的第三方工具,不用我们自己写httpcline调用。 导入jar包 添加一个resource.properties文件,写上小程序的appid和secret 添加两个配置文件 WxMaProperties.java WxMaConfiguration.java 如何使用 小程序给微信发送消息

    2024年02月16日
    浏览(42)
  • Gitee第三方登录

    写这篇文章时,参考了一位大佬的文章,算是把大佬文章里一些不详细的部分补充完整了,但是核心的代码没有什么改动,只是抛弃掉了那个重定向的工具类,以下是大佬文章的链接:http://t.csdn.cn/0L7T4 1、登录gitee 官网:https://gitee.com/ 2、注册或登录账号 3、进入 设置》第三

    2024年02月12日
    浏览(44)
  • 微信小程序第三方登录

    目录 小程序第三方登录操作流程如下: 1.第一步 2.第二步 2.第三步 4.第四步 5.第五步 注意:如果第一步没打印出来,看看微信模拟器上的Id有没有更改,或则去源码试图,weixinId更改 进入uniapp官网=Api=第三方服务=登录=微信小程序登录 创建一个触发事件,获取头像和名称 调用

    2024年02月13日
    浏览(60)
  • 实现 Google 第三方授权登录

    最近做项目要实现Google的第三方登录,这简单的记录一下。 目前Google的第三方登录有很多方案,且官方提供SDK方便接入。但是我这个项目同时要实现网页和客户端。所以选择了 Google OAuth 2.0 的方案。 当然,也可以 《实现 Facebook 第三方授权登录》 Google 的 OAuth 2.0 流程 首先

    2024年02月09日
    浏览(38)
  • Spring xml 方式整合mybatis 第三方框架

    MyBatis提供了mybatis-spring.jar专门用于两大框架的整合。 ①:第一步: 导入MyBatis整合Spring的相关坐标; ②:第二步: 编写Mapper和Mapper.xml ③:第三步: 配置SqlSessionFactoryBean和MapperScannerConfigurer ④:第四步: 编写测试代码

    2024年02月13日
    浏览(52)
  • PHP Twitter 推特 第三方登录

    twitter登录文档 开发者平台 申请成为开发流程按引导操作就可以了, 但是要注意信息填写要真实完善的信息, 否则容易被拒绝(被拒绝可能不能二次申请, 之前不能, 现在不知道能不能) 目前推特一个号只能开通一个免费应用, 可付费开通多个 设置基础信息 User authentication setting

    2024年04月16日
    浏览(30)
  • 若依 关于 springsecurity 不用密码登录,自定义第三方登录、免登录

    用的是若依的前后端分离的版本,项目接口是给小程序用 openid 直接免登录 找到登录方法 他这是根据用户名和密码进行比对、由于密码没办法转换成明文 只能改成如下方法免登录

    2024年02月07日
    浏览(48)
  • uniapp 对接谷歌第三方登录

    1.登录谷歌开发者后台 https://console.developers.google.com/ 2.添加凭证 3.拿到客户端id后,项目中配置google登录:  示例代码:

    2024年04月29日
    浏览(39)
  • 使用开源项目JustAuth完成第三方登录

    JustAuth项目源码地址:https://github.com/justauth/JustAuth JustAuth文档地址:https://justauth.wiki/guide/quickstart/oauth/ 此demo的项目地址:xfeng520/JustAuthDemo (gitee.com) 开发者 指使用 JustAuth 的开发者 第三方 指开发者对接的第三方网站,比如:QQ平台、微信平台、微博平台 用户 指最终服务的真实

    2023年04月22日
    浏览(78)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包