asp.netmvc中 微信授权页面逻辑
页面 a 回调页面 b 方法 过滤器Authorize:在进入所有页面之前都要访问的一个方法
第一步:开始访问a页面
在未进入到a页面之前 进入Authorize
第二步:进入Authorize方法
在Authorize中,判断是否存在缓存信息,并且获取访问的页面路径,判断访问页面是否为 回调页面b
若不存在缓存 ,且访问的页面不是回调页面b
那么,跳转到回调页面b,并携带code 和访问的页面路径(也就是a)
第三部,到了b中:
判断code是否有值,没有值去获取code,获取到code之后再返回到b,并携带获取到的code和访问的页面路径(也就是a)
根据code获取微信用户信息,存储到session中,这时在跳转到访问的页面路径
(也就是a)
代码示例
访问页面A()
{ }
回调页面B(code,A的url)
{
If(code == null){
获取code,获取到code之后
跳转到b(参数code,A的url)
}
else{
根据code获取用户信息,存储到缓存
并跳转到url
}
}
过滤器
Authorize()
{
If(A的url != b的url && session == null)
{
跳转到 b(参数code,url)
}
}