senparc 第三方授权回调,保存授权信息到文件

[HttpGet]
        public async Task<IActionResult> OpenOAuthCallback(string auth_code, string appletId)
        {
            try
            {
                #region 使用ComponentContainer
                //获取OAuth授权结果
                QueryAuthResult queryAuthResult;
                try
                {
                    queryAuthResult = ComponentContainer.GetQueryAuthResult(_senparcWeixinSetting.Component_Appid, auth_code, false);
                }
                catch (Exception ex)
                {
                    throw new Exception("QueryAuthResult:" + ex.Message);
                }
                #endregion
                if (queryAuthResult.authorization_info == null) return Json(queryAuthResult);
                var dir = Path.Combine(Environment.CurrentDirectory + @"/App_Data/AuthorizerInfo/" + _senparcWeixinSetting.Component_Appid);
                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir);
                }
                var file = Path.Combine(dir, string.Format("{0}.bin", queryAuthResult.authorization_info.authorizer_appid));
                //记录authorization_info(也可以存入数据库或其他可以持久化的地方)
                using (FileStream fs = new FileStream(file, FileMode.OpenOrCreate, FileAccess.ReadWrite))
                {
                    var bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                    bf.Serialize(fs, new RefreshAuthorizerTokenResult { authorizer_access_token = queryAuthResult.authorization_info.authorizer_access_token, expires_in = queryAuthResult.authorization_info.expires_in, authorizer_refresh_token = queryAuthResult.authorization_info.authorizer_refresh_token });
                }

                //授权成功后,更新客户小程序信息 queryAuthResult.authorization_info.miniprograminf
                var getAuthorizerInfoResult = AuthorizerContainer.GetAuthorizerInfoResult(_senparcWeixinSetting.Component_Appid, queryAuthResult.authorization_info.authorizer_appid);
               
                return Json(queryAuthResult.authorization_info);
            }
            catch (ErrorJsonResultException ex)
            {
                return Content(ex.Message);
            }
        }

 

转载于:https://www.cnblogs.com/SmilePastaLi/p/11269509.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值