前言
最近要做一個(gè)H5項(xiàng)目,要把H5嵌入到app里面,這個(gè)APP是要先登錄的,然后開(kāi)一個(gè)口子,通過(guò)一個(gè)點(diǎn)擊按鈕跳轉(zhuǎn)到我的H5頁(yè)面。這按鈕是通過(guò)一個(gè)連接,類似于:
http://localhost:8080/#/home?appname=abcd&token=XXXX&sid=XXXXX&flag=eeefff&from=app
這種鏈接發(fā)過(guò)來(lái),就是一定會(huì)帶上token和sid這種信息。
我們這個(gè)是內(nèi)嵌,app登錄了,把cookie 注入到我們的里面的h5環(huán)境。其實(shí)我們H5網(wǎng)頁(yè)打開(kāi)等于是一個(gè)瀏覽器環(huán)境。app提供這個(gè)環(huán)境給我們渲染網(wǎng)頁(yè)。這個(gè)環(huán)境我們是無(wú)法突破瀏覽器這個(gè)限制的,一切都要讓外面塞到瀏覽器里面。
我們可以在首頁(yè)獲取到app給我們的一些登錄信息:
// 首頁(yè) [http://localhost:8080/#/home?appname=abcd&token=XXXX&sid=XXXXX&flag=eeefff&from=app](http://localhost:8080/#/home?appname=abcd&token=XXXX&sid=XXXXX&flag=eeefff&from=app)
<script>
export default {
name: 'Home',
created() {
const query = this.$route.query;
// 保存在vuex里面,然后在里面另做處理
this.$store.commit('user/SET_TOKEN',query.token);
this.$store.commit('user/SET_SID',query.sid);
},
data () {
return {
}
},
mounted () {
},
}
</script>
然后是在store里面(store/modules/user.js)
import {
getSid,
setSid,
getToken,
setToken,
removeToken,
removeSid,
} from '@/utils/auth'
const state = {
token: getToken(),
sid: getSid(),
}
const mutations = {
SET_TOKEN: (state, data) => { // token
state.token = data
setToken(data)
},
SET_SID: (state, data) => { // sid
state.sid = data
setSid(data)
},
}
const actions = {
}
store/getters.js
const getters = {
token: state => state.user.token,
sid: state => state.user.sid,
}
export default getters