使用第三方GitLab进行登录认证

使用第三方GitLab登录

经过研究第三方GitLab,做了一个简单的demo,实现使用GitLab登录。

一、效果图

先展示一下效果截图,大概就如下图所示
1.1 点击登录按钮
在这里插入图片描述
1.2 正在跳转到GitLab中。。。。
在这里插入图片描述
1.3 到GitLab登录页面,输入邮箱和密码
在这里插入图片描述
1.4 登录成功后,便会跳转到授权登录。选择授权登录或者拒绝。若选择授权登录,便会跳到我们之前写好的页面。之后再用GitLab登录的话,就不会有这个授权页面了,而是直接到之前写好的页面。
在这里插入图片描述
1.5 登录成功跳到之前写好的重定向的页面。并且会返回一串code值,通过这个code值,我们便可以拿到token。也就是后面放的方法,有注释。
在这里插入图片描述

二、具体操作如下:

2.1 首先需要登录到GitLab,进行一个账号注册
进入用户中心设置,下拉选择【Settings】
在这里插入图片描述
2.2 选择【Application】新建,输入一个名字和返回路径,勾选【api】即可生成Application ID。
在这里插入图片描述
2.3 下方是生成好的Application ID以及相关信息, 后面会用上。
在这里插入图片描述

三、前端jsp和js 写一个简单的按钮跳转到GitLab登录页面,进行授权登录。

3.1 jsp内容

选择:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<button onclick="tolo()">GitLab登录</button>

3.2 js内容使用【window.location.href】进行跳转,参数详情下方有说明。

跳转授权的接口:

https://gitlab.com/oauth/authorize

参数:

参数 内容
client_id 注册应用的 Application Id
redirect_uri 颁发令牌后的回调网址
response_type 返回的类型,授权码模式即为code
state 用于确认请求和回调的状态,OAuth 建议以此来防止 CSRF 攻击
scope api 权限设置,范围不得超出创建应用时的配置,以空格分隔
<script type="text/javascript">
    function tolo(){
   
        //注册 GitLab 应用成功后的 Application Id
        var client_id="49d44eaf1792cd5ee3813d2fef98f2951b913f5fdb4698279d2b0a092dd6bd5d";
        //注册应用时设置的重定向 URI
        var redirect_uri= "http://localhost:8089/****/back/ToGitLabSuccess";
        //返回的类型,授权码模式即为code
        var response_type ="code";
        //用于确认请求和回调的状态,OAuth 建议以此来防止 CSRF 攻击
        var state = "linda";
        //权限设置,范围不得超出创建应用时的配置,以空格分隔
        var scope = "api";
        //https://gitlab.example.com
        window.location.href ="https://gitlab.com/oauth/authorize?client_id="+client_id+"&redirect_uri="+redirect_uri+"&response_type="+response_type+"&state="+state+"&&scope="+scope+""
    }
</script>

四、后端代码:

Controller

import com.alibaba.fastjson.JSONObject;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值