| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using Microsoft.Extensions.Caching.Distributed;
- using Microsoft.Extensions.Configuration;
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace DingDingDemo.Common
- {
- public class TokenHelper
- {
- private readonly IDistributedCache _cache;
- private readonly IConfiguration _configuration;
- public TokenHelper(IDistributedCache cache, IConfiguration configuration)
- {
- _cache = cache;
- _configuration = configuration;
- }
- /// <summary>
- /// 获取AccessToken
- /// </summary>
- /// <returns></returns>
- public string GetAccessToken()
- {
- var accesstoken = _cache.GetString(_configuration["DingTalkSettings:AppKey"] +"accesstoken");
- if (string.IsNullOrEmpty(accesstoken))
- {
- string result = HttpHelper.HttpGet(string.Format(_configuration["DingTalkSettings:TokenUrl"], _configuration["DingTalkSettings:AppKey"], _configuration["DingTalkSettings:AppSecret"]));
- var resultobj = result.ToJObject();
- if (resultobj["errcode"].ToString() == "0")
- {
- accesstoken = resultobj["access_token"].ToString();
- string cachetime = _configuration["DingTalkSettings:TokenCacheTime"];
- DistributedCacheEntryOptions options = new DistributedCacheEntryOptions();
- options.AbsoluteExpiration = DateTime.Now.AddSeconds(long.Parse(cachetime));
- _cache.SetString(_configuration["DingTalkSettings:AppKey"] + "accesstoken", accesstoken, options);
- }
- }
- return accesstoken;
- }
- }
- }
|