|
|
@@ -172,3 +172,53 @@ function handleMessage(event) {
|
|
|
|
|
|
window.addEventListener("message", handleMessage, false);
|
|
|
```
|
|
|
+
|
|
|
+## 2024-12-13 dify 添加`token`参数处理
|
|
|
+
|
|
|
+为了解决嵌入登录问题,修改部分代码。
|
|
|
+
|
|
|
+需求描述:`大模型2.0`使用`iframe`嵌入`dify`,需要进行登录,此时在嵌入时,将`token`放入`url`后面,`dify`中需要处理此参数,将`token`通过`localstorage`进行保存,从而实现登录操作。
|
|
|
+
|
|
|
+### 嵌入时链接示例
|
|
|
+
|
|
|
+`http://192.168.20.116/explore/apps?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiODA1NGU5ZmMtNzViYS00N2FlLWFlMmItNTEwOWZlMDFkYjA0IiwiZXhwIjoxNzM0MDgzODg4LCJpc3MiOiJTRUxGX0hPU1RFRCIsInN1YiI6IkNvbnNvbGUgQVBJIFBhc3Nwb3J0In0.urrZl876HSqbgbmbvklvTvcvkTb05N21UKUSVfnlHsM`
|
|
|
+
|
|
|
+### 修改文件
|
|
|
+
|
|
|
+* 文件远程地址:`http://192.168.20.116/_next/static/chunks/app/(commonLayout)/layout-f8be35226350c774.js`
|
|
|
+* 文件路径: `/data/disk2/llm_platform/dify/docker/web/.next/static/chunks/app/(commonLayout)/layout-f8be35226350c774.js`
|
|
|
+
|
|
|
+### 修改内容
|
|
|
+
|
|
|
+```js
|
|
|
+function getSearchParams(href){
|
|
|
+ const url = new URL(href);
|
|
|
+
|
|
|
+ const searchParams = new URLSearchParams(url.search);
|
|
|
+
|
|
|
+ // 将键值对列表转换为一个对象
|
|
|
+ const res = Object.fromEntries(searchParams.entries());
|
|
|
+
|
|
|
+ return res;
|
|
|
+}
|
|
|
+
|
|
|
+function setUrlToken(){
|
|
|
+ // 获取URL值
|
|
|
+ const href = location.href;
|
|
|
+
|
|
|
+ const params = getSearchParams(href);
|
|
|
+
|
|
|
+ if(params.token){
|
|
|
+ localStorage.setItem('console_token', params.token);
|
|
|
+ localStorage.setItem('refresh_token', '10846d07c926fe8db065246eea370067cfce547066865e6068792e78ebee3c41e841b0c0c41d0c59d3e149dbdfc746f6ea8638f4b99735fbe97b70d2aa0d78bb');
|
|
|
+ }else{
|
|
|
+ // 找不到token,提示错误
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+setUrlToken();
|
|
|
+```
|
|
|
+
|
|
|
+`dify`身份凭据是`console_token`,但是在`dify`代码中,会判断`refresh_token`是否存在,如果不存在,则会跳回登录页面。
|
|
|
+
|
|
|
+此部分代码手动创建一个`refresh_token`,再配合参数中的`token`,从而实现登录流程正常。
|