接入第三方登录(已接入Gitee[理论justAuth支持都可以接入]--抢先预览版

This commit is contained in:
weir
2021-08-13 23:44:52 +08:00
parent c588a4d975
commit 133cb49c42
27 changed files with 1049 additions and 44 deletions

View File

@ -38,3 +38,19 @@ export function getCodeImg() {
method: 'get'
})
}
// 接入第三方登录
export function giteeLogin() {
return request({
url: '/auth2/authorization/gitee',
method: 'get'
})
}
export function getToken(path) {
console.log({path});
return request({
url: '/auth2/login/gitee' + path,
method: 'get'
})
}

View File

@ -7,7 +7,7 @@ import { getToken } from '@/utils/auth'
NProgress.configure({ showSpinner: false })
const whiteList = ['/login', '/auth-redirect', '/bind', '/register']
const whiteList = ['/login', '/auth-redirect', '/bind', '/register', '/oauthLogin/gitee']
router.beforeEach((to, from, next) => {
NProgress.start()

View File

@ -43,6 +43,11 @@ export const constantRoutes = [
component: (resolve) => require(['@/views/login'], resolve),
hidden: true
},
{
path: '/oauthLogin/gitee',
component: (resolve) => require(['@/views/oauthLogin'], resolve),
hidden: true
},
{
path: '/404',
component: (resolve) => require(['@/views/error/404'], resolve),

View File

@ -45,6 +45,11 @@
<span v-else> 中...</span>
</el-button>
</el-form-item>
<el-form-item style="width:100%;">
<el-button @click="doAuth2Login" title="使用 Gitee 帐号登录">
<span class="gitee-login-title">使用 Gitee 帐号登录</span>
</el-button>
</el-form-item>
</el-form>
<!-- 底部 -->
<div class="el-login-footer">
@ -54,7 +59,7 @@
</template>
<script>
import { getCodeImg } from "@/api/login";
import { getCodeImg,giteeLogin } from "@/api/login";
import Cookies from "js-cookie";
import { encrypt, decrypt } from '@/utils/jsencrypt'
@ -135,6 +140,14 @@ export default {
});
}
});
},
doAuth2Login() {
console.log("开始Oauth登录...");
this.loading = true;
giteeLogin().then((res) => {
console.log(res.url);
window.location.href = res.url;
});
}
}
};

View File

@ -0,0 +1,27 @@
<template>
<div>登录成功</div>
</template>
<script>
import { getToken, setToken, removeToken } from '@/utils/auth'
export default {
created() {
var token = this.getOauthToken();
setToken(token);
this.$router.push({ path: this.redirect || "/" }).catch(() => {});
},
methods: {
getOauthToken() {
console.log(this);
var h = window.location.href;
var token = "token=";
return h.substring(h.indexOf(token)+token.length);
}
},
}
</script>
<style>
</style>