zoukankan      html  css  js  c++  java
  • 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);
                }
            }
  • 相关阅读:
    Java应用调优指南之-工具篇
    2016第18周四
    2016第18周三
    IE下JS接受ActiveX控件方法
    2016第18周一
    Jquery插件写法及extentd函数
    2016第17周六
    嘛:如何远视 还有遥远的未来
    寻找失踪的整数数组(Find the missing integer)
    Cocos2d-x 2地图步行实现:SPFA算法
  • 原文地址:https://www.cnblogs.com/SmilePastaLi/p/11269509.html
Copyright © 2011-2022 走看看