diff --git a/apps/chat/serializers/chat_authentication.py b/apps/chat/serializers/chat_authentication.py
index 2243844e0..4f28d2f58 100644
--- a/apps/chat/serializers/chat_authentication.py
+++ b/apps/chat/serializers/chat_authentication.py
@@ -57,6 +57,8 @@ class AuthProfileSerializer(serializers.Serializer):
self.is_valid(raise_exception=True)
access_token = self.data.get("access_token")
application_access_token = QuerySet(ApplicationAccessToken).filter(access_token=access_token).first()
+ if application_access_token is None:
+ raise NotFound404(404, _("Invalid access_token"))
application_id = application_access_token.application_id
profile = {
'authentication': False
diff --git a/ui/src/router/chat/index.ts b/ui/src/router/chat/index.ts
index 74fe54dc2..6d443d6fc 100644
--- a/ui/src/router/chat/index.ts
+++ b/ui/src/router/chat/index.ts
@@ -37,9 +37,7 @@ router.beforeEach(
try {
authentication = await chatUser.isAuthentication()
} catch (e: any) {
- next({
- path: '/404',
- })
+ next()
return
}
const p_token = to.query.token
@@ -86,7 +84,12 @@ router.beforeEach(
}
}
} else {
- await chatUser.anonymousAuthentication()
+ try {
+ await chatUser.anonymousAuthentication()
+ } catch (e: any) {
+ next()
+ return
+ }
}
if (!chatUser.application) {
try {
diff --git a/ui/src/views/chat/index.vue b/ui/src/views/chat/index.vue
index f30b7be22..567ae665f 100644
--- a/ui/src/views/chat/index.vue
+++ b/ui/src/views/chat/index.vue
@@ -25,11 +25,16 @@ const {
const currentTemplate = computed(() => {
let modeName = ''
- if (!mode || mode === 'pc') {
- modeName = common.isMobile() ? 'mobile' : 'pc'
+ if (chatUser.application) {
+ if (!mode || mode === 'pc') {
+ modeName = common.isMobile() ? 'mobile' : 'pc'
+ } else {
+ modeName = mode
+ }
} else {
- modeName = mode
+ modeName = 'no-service'
}
+
const name = `/src/views/chat/${modeName}/index.vue`
return components[name].default
})
diff --git a/ui/src/views/chat/no-service/index.vue b/ui/src/views/chat/no-service/index.vue
new file mode 100644
index 000000000..bc1eb2eec
--- /dev/null
+++ b/ui/src/views/chat/no-service/index.vue
@@ -0,0 +1,18 @@
+
+
+
+

+
{{ $t('common.notFound.NoService') }}
+
+
+
+
+