123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- import { ref } from 'vue'
- import { postData, setUserToken } from '../api/axios.js'
- export function useUserInfo() {
- const userInfo = ref({
- username: '',
- displayname: '',
- identity: '',
- });
- const register = async (username, password) => {
- //登录
- let registerResult = {};
- try {
- const response = await postData('/register/', {
- username: username,
- password: password,
- })
- console.log(response)
- if (response.status === 'success') {
- //保存登录信息
- Object.keys(response.data).forEach(
- key => {
- if (key in userInfo.value) {
- userInfo.value[key] = response.data[key];
- }
- }
- )
- console.log(userInfo.value)
- // 将userInfo存入sessionStorage
- sessionStorage.setItem('userInfo', userInfo.value);
- registerResult.status = 'success';
- registerResult.message = '注册成功';
- registerResult.data = userInfo;
- // 保存用户token
- setUserToken(response.data.token);
- // 保存用户信息
- sessionStorage.setItem('user-info', JSON.stringify(userInfo.value))
- }
- } catch (error) {
- console.log(error)
- let message = "注册失败";
- if (error.response) {
- // 处理后端返回的错误信息
-
- const backendError = error.response.data?.errors
- if (backendError) {
- message = Object.values(backendError).join('; ')
- } else {
- message = error.response.data?.message || message
- }
- }
- registerResult.status = 'failed';
- registerResult.message = message;
- registerResult.data = null;
- } finally {
- return registerResult;
- }
- }
- const login = async (username, password) => {
- let loginResult = {};
- try {
- const response = await postData('/login/', {
- username: username,
- password: password,
- })
- console.log(response)
- if (response.status === 'success') {
- //保存登录信息
- Object.keys(response.data).forEach(
- key => {
- if (key in userInfo.value) {
- userInfo.value[key] = response.data[key];
- }
- }
- )
- console.log(userInfo.value)
- // 将userInfo存入sessionStorage
- sessionStorage.setItem('userInfo', userInfo.value);
- loginResult.status = 'success';
- loginResult.message = '登录成功';
- loginResult.data = userInfo;
- // 保存用户token
- setUserToken(response.data.token);
- // 保存用户信息
- sessionStorage.setItem('user-info', JSON.stringify(userInfo.value))
- }
- } catch (error) {
- console.log(error)
- let message = "登录失败";
- if (error.response) {
- // 处理后端返回的错误信息
-
- const backendError = error.response.data?.errors
- if (backendError) {
- message = Object.values(backendError).join('; ')
- } else {
- message = error.response.data?.message || message
- }
- }
- loginResult.status = 'failed';
- loginResult.message = message;
- loginResult.data = null;
- } finally {
- return loginResult;
- }
- }
- return {
- userInfo,
- register,
- login,
- }
- }
|