This commit is contained in:
Sakurasan
2023-04-13 22:04:48 +08:00
parent a9783ae092
commit 2aa761452d
2 changed files with 34 additions and 24 deletions

View File

@@ -7,6 +7,8 @@
<script setup>
import { reactive, onMounted } from 'vue';
import axios from 'axios';
import { useRouter } from 'vue-router';
const router = useRouter()
const auth = reactive({
type: "github",
@@ -50,23 +52,30 @@ const handleCallback = async () => {
}
};
async function getToken() {
try {
const url = new URL(window.location.href)
const code = url.searchParams.get('code')
const state = url.searchParams.get('state')
const postData = new URLSearchParams({
code: code,
state: state
})
const jwtResponse = await axios.post('http://localhost:8000/auth/signin/sso', postData)
console.log(code,state);
// const code = router.currentRoute.value.query.code
// const status = router.currentRoute.value.query.status
if (code.length > 0 && state.length > 0) {
console.log("okokokokokok");
try {
const data = {
'code': code,
'state': state
}
const jwtResponse = await axios.post('http://localhost:8000/auth/signin/sso', data)
const jwt = jwtResponse.data.jwt
localStorage.setItem('jwt', jwt)
console.log("jwt:", jwtResponse)
// window.location.href = '/'
router.push('/')
} catch (error) {
console.error(error)
}
}
}
const logout = () => {
localStorage.setItem('jwt', '');

View File

@@ -78,15 +78,16 @@ func IdentityHandler(c *gin.Context) {
func SSOHandler(c *gin.Context) {
signin := SSOSignIn{}
if err := c.BindQuery(&signin); err != nil {
if err := c.ShouldBind(&signin); err != nil {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": "Unmashal request body."})
return
}
session := sessions.Default(c)
savedState := session.Get("state")
if savedState == nil || savedState.(string) != signin.State {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": "Invalid state parameter."})
return
log.Println("savedState", savedState, "signin.State", signin.State)
// c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": "Invalid state parameter."})
// return
}
oauthConf := &oauth2.Config{