微信小程序登录实现

一、登录流程

        首先我们看下官方提供的登录流程图,小程序端通过wx.login()获取登录需要得登录凭证code,然后将该code传递给后端接口,配合小程序参数appId、srcret实现登录验证,验证成功后获得相关信息如:openId、session_key。后续使用openId、session_key等实现自定义的登录状态,例如生成token返回给前端。

二、代码实现
1、前端涉及接口

(1)wx.login()  获取登录凭证 code 

(2)wx.getUserInfo() 获取用户信息  encryptedData、iv

2、涉及依赖
        <dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-miniapp</artifactId>
            <version>4.0.7.B</version>
        </dependency>
3、Controller层实现

LoginParam:

/**
 * 登陆LoginDTO
 */
@Getter
@Setter
public class LoginParam {
    /**
     * 登录凭证
     */
    @NotEmpty(message = "参数code不能为空!")
    private String code;

    /**
     * 微信登录接口返回的加密用户信息
     */
    @NotEmpty(message = "参数encryptedData不能为空!")
    private String encryptedData;

    /**
     * 加密偏移数据
     */
    @NotEmpty(message = "参数iv不能为空!")
    private String iv;
}

Controller:

@RestController
@Validated
public class AuthWxController {
    @Autowired
    private AuthWxService authWxService;

    /**
     * 微信小程序登录
     **/
    @ApiOperation("微信小程序登录")
    @PostMapping("/auth/wx/doLogin")
    public CommonResult<String> doLogin(@RequestBody @Valid LoginParam loginParam) {
        return CommonResult.data(authWxService.doLogin(loginParam));
    }
}
4、Service层实现

AuthWxService:

/**
 * 微信
 */
public interface AuthWxService {
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值