diff --git a/src/utils/auth.js b/src/utils/auth.js index ff73c4b..bee1dd4 100644 --- a/src/utils/auth.js +++ b/src/utils/auth.js @@ -34,3 +34,19 @@ export function isUsernameLoggedIn() { export function isLooseLoggedIn() { return isAccountLoggedIn() || isUsernameLoggedIn(); } + +export function getMusicU(string) { + const temp = string.split(';') + if (!temp.length) { + return undefined + } + const MUSIC_U = temp.find(item => item.includes('MUSIC_U')) + if (MUSIC_U) { + return MUSIC_U.split('=')[1] + } + return '' +} + +export function setMusicU(key, value) { + return Cookies.set(key, value) +} \ No newline at end of file diff --git a/src/views/loginAccount.vue b/src/views/loginAccount.vue index a11dfb5..c08333a 100644 --- a/src/views/loginAccount.vue +++ b/src/views/loginAccount.vue @@ -89,6 +89,7 @@ import { loginWithPhone, loginWithEmail } from "@/api/auth"; import md5 from "crypto-js/md5"; import { mapMutations } from "vuex"; import { userPlaylist } from "@/api/user"; +import { getMusicU, setMusicU } from '@/utils/auth'; export default { name: "Login", @@ -177,6 +178,10 @@ export default { md5_password: md5(this.password).toString(), }) .then((data) => { + // 获取接口返回的 MUSIC_U 写进本地 cookie 解决登录时跳转的问题 + // 但是仍然无法完全模拟登录状态,像喜欢歌曲和喜欢列表都会遇到 301 需要登录问题 + const MUSIC_U = getMusicU(data.cookie) + setMusicU('MUSIC_U', MUSIC_U) if (data.code !== 502) { this.updateData({ key: "user", value: data.profile }); this.afterLogin();