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

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
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 08:18:40

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
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

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档