首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将令牌存储在cookie中?

如何将令牌存储在cookie中?
EN

Stack Overflow用户
提问于 2020-03-23 08:40:57
回答 1查看 1.8K关注 0票数 3

我有一个API,它返回一个令牌,使用该令牌我可以向API发出更多请求,现在我正在会话中存储令牌,但是我认为使用会话会破坏使用令牌的全部目的,所以我想知道如何将令牌存储在cookie中?下面是我获取令牌并将其写入会话的代码:-

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public async Task<string> GetToken(bool tokenExpired)
{
    if (_context.HttpContext.Session.GetString("token") != null && tokenExpired == false)
    {
        return _context.HttpContext.Session.GetString("token");
    }

    var authClient = _httpClientFactory.CreateClient("Auth");

    var dict = new Dictionary<string, string>
    {
        { "grant_type", "client_credentials" },
        { "client_id", "my_client_id" },
        { "client_secret", "my_client_secret" }
    };
    var res = await authClient.PostAsync(authClient.BaseAddress, new FormUrlEncodedContent(dict));

    if (res.StatusCode == HttpStatusCode.OK)
    {
        var authentication = JsonConvert.DeserializeObject<Authentication>(res.Content.ReadAsStringAsync().Result);

        _context.HttpContext.Session.SetString("token", authentication.Access_Token);

        return authentication.Access_Token;
    }
    else
    {
        throw new Exception();
    }
}

这个令牌在60分钟后到期,所以我也必须处理这个问题,我只使用这个令牌访问一个特定的端点,我不使用这个令牌进行身份验证或授权。我要做什么修改才能将其存储在cookie中,或者可能存储在本地存储中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-27 00:18:40

,我做了哪些更改才能将其存储在cookie中,或者可能存储在本地存储中?

正如我们在注释中讨论的那样,要将获取的令牌存储在cookie中,可以使用以下代码片段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
HttpContext.Response.Cookies.Append("token", authentication.Access_Token, 
    new Microsoft.AspNetCore.Http.CookieOptions { Expires = DateTime.Now.AddMinutes(expires_in) });

然后,您可以检查客户端是否获得了令牌,以及该现有令牌是否已在代码逻辑中过期,如下所示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var token = "";

if (HttpContext.Request.Cookies.TryGetValue("token",out token) && tokenExpired == false)
{
    return token;
}
return token;
//...
//code logic here
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60817847

复制
相关文章
解决 无法读取到 /data/data/yourPackageName/files/coverage.ec 文件
参考 https://testerhome.com/topics/8554 这篇文章
全栈程序员站长
2022/09/13
1K0
PE盘装系统时无法找到ISO文件
用PE盘装系统时,在选择包含Windows安装文件的文件夹时,找不到ISO系统镜像映像,如图所示
全栈程序员站长
2022/09/12
6.2K0
PE盘装系统时无法找到ISO文件
无法找到模块“element-plus/dist/locale/zh-cn.mjs”的声明文件
无法找到模块“element-plus/dist/locale/zh-cn.mjs”的声明文件。“e:/visualstudio_code/emppre/node_modules/element-plus/dist/locale/zh-cn.mjs”隐式拥有 “any” 类型。 如果“element-plus”包实际公开了此模块,请尝试添加包含 declare module‘element-plus/dist/locale/zh-cn.mjs'; 的新声明(.d.ts)文件ts(7016)
知识浅谈
2023/09/02
1.6K0
idea 使用 lombok无法获取到get方法 的坑
如果经过如上设值还不行,就先进行clean,再进行编译,生存class文件,然后再运行
MickyInvQ
2020/09/27
3.7K0
idea  使用 lombok无法获取到get方法 的坑
pyaudio库的安装(portaudio.h文件无法找到问题解决)
pyaudio是语音处理的python库,提供了比较丰富的功能。 具体功能如下: 特征提取(feature extraction):关于时域信号和频域信号都有所涉及 分类(classification):监督学习,需要用已有的训练集来进行训练。交叉验证也实现了,进行参数优化使用。分类器可以保存在文件中以后使用。 回归(regression):将语音信号映射到一个回归值。 分割(segmenttation):有四个功能被实现了  [x] 固定大小的分割 [x] 静音检测(silence removal)
sparkexpert
2018/01/09
1.9K0
pyaudio库的安装(portaudio.h文件无法找到问题解决)
VSCode 中,TS 提示 ”无法找到 *.vue 声明文件“ 的解决方案
在使用 VSCode 开发 Vue3 + TS 项目时,编辑器一直有一个报错,因为不影响编译和运行,所以就一直没在意,但这两天看着这红杠提示实在是太别扭,今天就来解决一下这个问题,还自己一个清爽的开发环境。
编程三昧
2021/09/28
2.5K0
VSCode 中,TS 提示 ”无法找到 *.vue  声明文件“  的解决方案
jsp的appilication.getInitParameter()方法无法获取到值的问题
背景介绍 今天研究jsp的内置对象时发现,使用appilication.getInitParameter()从web.xml文件中获取值的时候,死活获取不到,折腾了将近一个小时,后来出现问题的原因却让
roobtyan
2018/06/04
1.6K0
canScrollHorizontally()/canScrollVertically() 无法获取到正确执行的解决方案
使用一个 RecyclerView 实现了一个类似 Tab 效果,当这个 Tab 可以滑动时,显示最右侧的三角按钮,否则隐藏这个按钮。效果如图
阳仔
2019/07/31
6.4K0
canScrollHorizontally()/canScrollVertically() 无法获取到正确执行的解决方案
解决document.cookie无法获取到cookie问题
在进行前后端联调的时候,由于想实现一个登出操作,前端自动删除浏览器存储的cookie,想通过document.cookie来获取进而进行删除操作,但是发现浏览器有cookie;但是无法获取到情况遂记录
全栈程序员站长
2022/09/18
4.8K0
解决document.cookie无法获取到cookie问题
VirtualBox克隆后无法找到网卡的问题
Virtualbox现在更新到了4.1.6版本,我记得在之前的版本中,镜像的克隆只能通过命令行的方式来进行,现在已经可以通过界面来进行克隆了,可以说非常的方便。
大江小浪
2018/07/25
1.3K0
VirtualBox克隆后无法找到网卡的问题
什么是区块链:块的结构
在本文中,我尝试描述一个块的结构。我会用比特币区块链来解释块。这些概念会有一些共通之处。 块的结构 块(Block)是一个容器的数据结构。在比特币的世界里,一个区块平均包含500多个交易。块的平均大小大概为1MB左右(来源)。在Bitcoin Cash(来自比特币区块链的分支)中,块的大小可以高达8M,这可以在每秒中处理更多的事务。 不管怎样,一个块都是由一个头和交易的长列表组成的。我们先从标题谈起。 块标题 标题包含有关块的元数据。有3种不同的元数据集: 前面的块散列。请大家记住,在区块链中,每个区块
企鹅号小编
2018/01/16
2.8K0
什么是区块链:块的结构
Go 读文件
image.png os.Open os.Stderr err!=nil image.png
用户5760343
2019/07/17
1.3K0
Go 读文件
Spring的cglib代理类无法取到被代理类的成员属性
cglib的原理是生成一个被代理类的子类进行增强, 那么为什么子类访问不到父类的属性呢
code-x
2023/04/19
1.8K0
反射获取到class文件中的实例变量
3.Class类的静态方法获取。forName("字符串的类名")写全名,要带包名。 (包名.类名)
用户7630333
2023/12/07
1400
反射获取到class文件中的实例变量
fileinput 读文件
当你的 Python 脚本没有传入任何参数时,fileinput 默认会以 stdin 作为输入源
派大星在吗
2021/12/06
3.2K0
libuv 读文件
#include <stdio.h>#include <spdlog/spdlog.h>#include <uv.h>#include <string>uv_loop_t *loop;uv_fs_t open_fs;uv_buf_t uv_buf;static char buffer[1024];std::string result;void on_read_cb(uv_fs_t *req){ uv_fs_req_cleanup(req); if (req->result < 0) {
8菠萝
2022/11/14
1.4K0
python读文件
#some words Sometimes in life, You find a special friend; Someone who changes your life just by being part of it. Someone who makes you laugh until you can't stop; Someone who makes you believe that there really is good in the world. Someone who convinces you that there really is an unlocked door just waiting for you to open it.
py3study
2020/01/13
1.3K0
如何找到被删除的文件
日常运维过程中,我们经常需要处理磁盘空间问题,当接到告警后,第一时间会去找那些大文件,一般比如centos,可能大文件就是 /var/log/messages。
网络技术联盟站
2021/02/22
2.3K0
【说站】Nginx的配置文件详解(全局块、events块、http块)
现在很多网站都用LNMP的架构(Linux+Nginx+Mysql+PHP),对于Nginx我们必须要了解一下他的配置,才能将其性能发挥好,Nginx的配置文件我们可以到宝塔后台,Nginx管理》配置修改里面进行修改,也可以修改站点目录下的/server/nginx/conf/nginx.conf)。
很酷的站长
2022/11/24
7550
【说站】Nginx的配置文件详解(全局块、events块、http块)
无法为 WSDD 操作找到匹配的 Java 操作
我发现了错误。 只需要把“AndrQues”改成“andrQues”,程序就可以正常运行了。
matinal
2023/10/13
1690

相似问题

哪里可以找到奇偶块链文件?

20

无法将数据写入块链- Ganache

10

读从以太的小木条链

20

无法找到块的各种声明

10

块链中的块存档事件

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文